2015-01-06 4 views
5

が、それはそうのようなエラーをスローするNode.jsのエクスプレスアプリで適切なときに誰かが倍に詳説することができます:のNode.js - 次の(エラー)対エラーを投げる

throw new Error('my error'); 

またはこれを渡すためにコールバック経由のエラーは、通常、そのような「次へ」ラベル:

next(error); 

、あなたはそれらのそれぞれは、エクスプレスアプリのコンテキストで何をするか説明してくださいだろうか?

例えば、ここにURLパラメータを扱う急行機能は次のとおりです。ラインで

app.param('lineup_id', function (req, res, next, lineup_id) { 
     // typically we might sanity check that user_id is of the right format 
     if (lineup_id == null) { 
      console.log('null lineup_id'); 
      req.lineup = null; 
      return next(new Error("lineup_id is null")); 
     } 

     var user_id = app.getMainUser()._id; 
     var Lineup = app.mongooseModels.LineupModel.getNewLineup(app.system_db(), user_id); 
     Lineup.findById(lineup_id, function (err, lineup) { 
      if (err) { 
       return next(err); 
      } 
      if (!lineup) { 
       console.log('no lineup matched'); 
       return next(new Error("no lineup matched")); 
      } 
      req.lineup = lineup; 
      return next(); 
     }); 
    }); 

「//私はここに私自身のエラーを作成する必要がありますか?」のコメント 私は「新しいエラー( 'xyz')」を投げるのに使うことができましたが、どういうことでしょうか?通常、コールバックに「次へ」エラーを渡す方が良いのはなぜですか?

もう1つの質問は、私が開発中のときにコンソールとブラウザに「新しいエラー( 'xyz')を投げる」と表示する方法です。

答えて

4

一般的に、エラーをスローするのではなく渡す方法に従います。プログラム内のエラーについては、エラーオブジェクトを '次へ'に渡すことができます。また、エラーハンドラを定義して、次を適切に処理できる

http://expressjs.com/guide/error-handling.html

関連する問題