2012-05-17 3 views
1

У меня возникли проблемы с экспресс-обработкой ошибок. Вот моя конфигурация для сервера.Ошибка обработки ошибок NodeJs ExpressJS

server.use(express.static(__dirname + '/public')); 
    server.use(server.router); 
    server.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
    server.use(express.bodyParser()); 

Тогда я пытаюсь добавить следующую строку кода

server.error(function(err, req, res, next){ 
if (err instanceof NotFound) { 
    res.render('404.jade'); 
} else { 
    next(err); 
} 
}); 

Тогда в моей консоли, я получаю это сообщение,

Объект функции приложения (REQ, Рез) {app.handle (req, res); } не имеет метода 'error'

что я делаю неправильно? Я не могу заставить обработку ошибок работать.

+0

Проверьте мой ответ на соответствующий вопрос: http://stackoverflow.com/questions/10170857/can-i-reuse-the-express-js-error-view/10556093#10556093 – Pickels

ответ

3

Какая версия экспресса вы используете?

Потому что новый 3.x версия (еще в альфа-стадии), что изменилось довольно a lot of stuff, и такие вещи, как обработка ошибок изменяется

Отъезд migration guide from 2.x to 3.x

Страница находится в процессе работы, подумайте о том, чтобы вернуться к 2.x или в ожидании лучшего 3.x руководство по документации и миграции

+0

Да, кажется, что 3.X было установлен. Будет проверять путь вниз. Увидит, есть ли функции npm для этого. Благодаря! – theintersect

+1

Просто выполните: npm install [email protected] – BFil

+0

Да, но кажется, что 2.59 несовместимо с моей версией узла. У меня установлен узел v0.7.2-pre. Мне было интересно, есть ли способ понизить это. Спасибо чувак. – theintersect

Смежные вопросы