我目前遇到问题时显示错误文本但我想用一个可呈现的错误页面而不仅仅是文本替换它,并希望在如何解决此问题上多一点帮助。
这是我目前显示错误文本的代码:
return function (req, res, next) {
errorRepo.get(req.get('error'), serviceTokenHandler.makeToken(), function (err, errorInfo) {
if (err || !errorInfo) {
res.status(500).render('error', {
message: 'This is my error message'
});
} else {
.....
next();
}
});
};
我需要做什么才能重定向到错误页面而不只是显示消息?我应该用一个会重定向到另一个页面的方法调用来替换if块的内部吗?
答案 0 :(得分:0)
我假设您正在为您的应用程序使用express。如果你想渲染一个漂亮的错误页面,就像渲染任何其他页面一样。
错误页面和"正常"之间的唯一区别页面是 - 简单地说 - http状态代码的范围超过400。
E.g。你做了:
...
if (err || !errorInfo) {
res.render('error-page', function(err, html) {
res.status(500).send(html);
});
}
...
答案 1 :(得分:0)
假设您使用的是Express 4.x。
您可以创建在发生错误时要呈现的error.html文件。
<html><body>
ERROR
</body> </html>
在节点中,在发生错误时呈现error.html:
if(error) {
res.sendFile('error.html', { root: path.join(__dirname, '../views');
}
这样你可以保持html和节点代码分开。 Express 4.x文件的referance http://expressjs.com/en/4x/api.html#res.sendFile