Node.js, Express и 404-ая страница?

Проблема:

Отразить с помощью Express мою страницу для ошибок.


Вот что пробовал:
var express = require('express');

var app = module.exports = express.createServer();
var util = require('util');
// Configuration

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
});

app.configure('production', function(){
  app.use(express.errorHandler()); 
});


// Routes
app.get('/', function(req, res){
  res.render('index', {
    title: 'Express'
  });
});

app.listen(3000);
app.error(function(err, req, res, next){
    console.log('Error!');
    res.render('404.jade', {
        title: '404 — Page maybe not found'
      });
    //next(err);
});



Рыскал на сайте Express'a, но указаные примеры почему-то не отрабатывают.

WTF?
  • Вопрос задан
  • 10120 просмотров
Решения вопроса 1
pomeo
@pomeo
ага, тоже не получилось завести нормально, пробовал и из доков примеры и здесь смотрел github.com/visionmedia/express/tree/master/examples.
Сделал просто страницу app.get('/404',…, в настройках nginx прописал что по этому адресу 404 у меня, а в коде express т.к. описывать приходится всё, иначе упадет, просто делаю res.redirect('/404')
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
AntonShevchuk
@AntonShevchuk
Web-разработчик
@Postgoamodernist
app.get('/*', function(req, res){
res.status(404);
res.render('404', {
title: 'Express'
});
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы