我有这样的代码,可以在没有定义路线的情况下渲染玉器模板。可以把它想成express.static,但是它用URL调用res.render。
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()不会引发错误。而是呈现错误页面。有没有办法检测丢失的模板或任何渲染错误?
一个更好的方法fs是使用render的callback ,而不是需要另一个回调,而是:
fs
res.render(my_page_im_not_sure_it_exists, {}, function(err, html) { if(err) { res.redirect('/404'); // File doesn't exist } else { res.send(html); } });