3

個別に処理されないすべてのエラーについて、error.ejs ファイルをサーバーに提供したいと考えています。

mongoose user.save() http://expressjs.com/guide.html#error-handlingから重複キー エラーが発生した場合、このコードは何もしません 。

app.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 に答える