module.exports = function(app) {
try{
app.get('/:path/:id', function (req, res) {
res.render(req.params.path+'/'+req.params.id, { id: req.params.id });
});
}
catch(e){
console.error(e);
}
};
如果找不到res.render页面,如何重定向到另一个页面?
答案 0 :(得分:1)
最简单的方法是在模板渲染中发生错误时重定向到404
路由。
像
app.get('/:path/:id', function (req, res) {
res.render(req.params.path+'/'+req.params.id,{id:req.params.id},function(err,html){
if(err) {
//error in rendering template o redirect to 404 page
res.redirect('/404');
} else {
res.end(html);
}
});
});
参考文章: How can I catch a rendering error / missing template in node.js using express.js?
答案 1 :(得分:0)
为什么不创建一个能处理404页面的函数呢?即像这样的东西:
var show404Page = function(res) {
var html = "404 page";
res.end(html);
}
module.exports = function(app) {
try{
app.get('/:path/:id', function (req, res) {
res.render(req.params.path+'/'+req.params.id, { id: req.params.id });
});
}
catch(e){
console.error(e);
show404Page(res);
}
};