我有这样的代码,将呈现一个没有定义路由的玉模板。想想这个像express.static,但它调用与URL的res.render。如何使用express.js捕获node.js中的渲染错误/缺失模板?
app.use(function (req, res, next) {
try {
res.render(req.url.substring(1), { title: "No Controller", user: req.session.user });
} catch (err) {
console.log(err)
next();
}
});
问题是res.render()不会引发错误。相反,它会呈现错误页面。有没有办法来检测缺少的模板或任何渲染错误?
伟大的发现。它仅在3.x文档中,但它也适用于2.x。 – respectTheCode
更新了使用'res.send'而不是'res.end'的答案。 4.x文档[特别声明](http://expressjs.com/api.html#res.end)“如果您需要使用数据进行响应,请使用res.send()” –
等方法,我认为这样做会如果处理模板时发生错误,则会生成404,但似乎不会。任何人都在意解释为什么它没有? –