如何使用next()
或其他一些技术跳转到下一个中间件(即我的404页面)?
app.get('/events/*', function(req, res){ // /events/blob
var text = req.originalUrl.slice(8, req.originalUrl.length); // text = "blob"
app.locals.queried_event = obj[text]; // obj["blob"],if obj["blob"] is present it's ok but if it's not then it throws error
res.render("events");
});
答案 0 :(得分:1)
如果您愿意,可以转到错误处理中间件,但您也可以在此处返回错误:
app.get('/events/*', function(req, res){ // /events/blob
var text = req.originalUrl.slice(8, req.originalUrl.length); // text = "blob"
app.locals.queried_event = obj[text]; // obj["blob"],
if (obj.blob) {
res.render("events");
} else {
res.status(404).render("404page");
}
});
如果你想转到你的错误中间件,你会声明next
参数并调用它:
app.get('/events/*', function(req, res, next) { // /events/blob
var text = req.originalUrl.slice(8, req.originalUrl.length); // text = "blob"
app.locals.queried_event = obj[text]; // obj["blob"],
if (obj.blob) {
res.render("events");
} else {
next();
}
});
或者,您可以传递一个特定的错误对象,直接转到错误处理中间件next(err)
,您可以在其中传递一些特定的错误对象。