Как мне найти код ошибки с оператором return next (err), чтобы я мог отображать его в моем улове все промежуточное ПО?введите код ошибки с 'return next (err);'
var express = require('express');
var exphbs = require('express-handlebars');
var fs = require("fs");
var app = express();
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
app.get('/', function(req, res, next) {
// simulate 404 error
fs.readFile("foo.txt", "utf8", function(error, data) {
if(error) {
next(new Error('Aiiii caramba'));
}
});
});
/* Error Handling (gotta catch 'em all) */
app.use(function(err, req, res, next) {
res.status(err.status || 500)
.render('error', {
status: req.status,
error: err
});
});
app.listen(3000, function() {
console.log('Listening...');
})
Объект Error не принимает аргумент для кода ошибки. Я также попытался установить статус ответа, прежде чем возвращаться дальше ... безрезультатно.
res.status(404); return next(err);
Независимо от того, что я делаю, я получаю ошибку 500.
Заранее спасибо за ваше время.
Если вы хотите, чтобы ваш объект 'Error' имел свойство' status', то почему бы просто не установить свойство 'status' на объект' Error', прежде чем передать его в 'next'? Это ответ на ваш вопрос? – apsillers