在node.js中创build一个合适的错误页面

我的网页要求用户login访问该网站。 某些页面只能在用户login时查看。例如,以下是到configuration文件页面的路由,只有在login(快速login)后才能查看:

router.get('/profile', function (req, res) { User.findOne({_id: req.user._id}, function (err, user) { if (err) { return next(err) } else { res.render('main/profile', {user: user}); } }); }); 

如果有人试图在without logging in访问/profile页面,他们会得到一个页面上有一堆错误。

我希望能够做的是,而不是显示一个随机错误的页面,指导这些types的用户到一个适当的错误页面。 我试过用res.json (你不能访问这个页面return next(err)的东西replacereturn next(err) ),但是这似乎并没有工作。

这是我的问题的答案,使用上面评论部分的链接。 基本上,当有人试图访问我的网站的一部分,而不login,他们将被redirect到错误页面位于文件夹errors和文件名500 。 由于这种特定types的错误是500代码错误,我们使用res.status(500) 。 这里是完整的代码(在主服务器文件中):

 app.use(function(err, req, res, next) { res.status(500); res.render('errors/500'); });