处理res.render()中的jade错误

时间:2012-05-31 08:45:05

标签: node.js error-handling express pug

我有一个基于node.js / express的服务器,我正在使用jade进行模板化。通常没有问题,但每天都会有几次在收到任何页面时收到错误消息。错误是“找不到视图”。我不知道为什么我会收到这个错误,因为它在几分钟之前工作正常。

然而,问题是如何强制此事件发生崩溃,例如:

res.render('index.jade', {info: 'msg'}, function(error, ok) {
    if (error)
        throw new Error('');
    // Proceed with response
};

我该怎么做?我将如何处理回复?

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以添加错误处理中间件。

app.use(function handleJadeErrors(err, req, res, next) {
  // identify the errors you care about
  if (err.message === 'failed to locate view') {
    // do something sensible, such as logging and then crashing
    // or returning something more useful to the client
  } else {
    // just pass it on to other error middleware
    next(err);
  }
});

答案 1 :(得分:0)

试试这个:

app.use(function (req, res, next) {
    fs.exists(__dirname + '/views/' + req.url.substring(1) + '.jade', function (exists) {
      if(!exists) {
        console.log(err);
        return next();
      }
      res.render(req.url.substring(1), { title: "No Controller", user: req.session.user });
    }
});