3

我想为所有未单独处理的错误提供一个 error.ejs 文件。

当我从 mongoose user.save() http://expressjs.com/guide.html#error-handling收到重复键错误时,此代码不会执行任何操作

应用程序.js

app.use(function(err, req, res, next){
  res.status(500);
  res.render('error', { error: "Woops, we encountered an error..." });
});

路线/index.js

user.save(function(err){
    if ( err ) throw err;
});

下面的例子给了我这个错误: Caught exception: [ReferenceError: next is not defined]

user.save(function(err){
    if ( err ) next(err);
});
4

1 回答 1

3

你的片段

user.save(function(err){
    if ( err ) next(err);
});

大概是在具有功能( req, res )的路线内吗?

您需要做的是对该功能的“下一个”

function MyRoute( req, res, next ) {
  user.save(function(err){
    if ( err ) 
      return next(err);

    // carry on here doing whatever
  });
}

app.get('/some/route', MyRoute);
于 2012-12-31T11:56:28.807 回答