2017-09-18 19 views
0

私はコールバックとミドルウェアのnext()関数の違いを知っています。Strongloopループバックでのエラー処理

ループバックでのカスタムリモート・メソッドを記述した場合、私は簡単に(nullのエラー、)コールバックなどコールバックでエラーを送信することができますが、リモートフックまたはオブザーバーで、私は次の()関数など

にエラーを送信するたびに

var err = new Error('This is error'); next(err)

常に内部サーバーエラーとは言われていますが、エラーが何であるかはわかりません。 エラーを表示するには、サーバーにログインしてログを表示する必要があります。 どうすればnext()関数の応答としてエラーを送信し、フロントエンドでエラーが発生したのかを知ることができます。基本的にあなたが誤ると結果とのコールバックを定義することができます

答えて

0

多分にフックするためのミドルウェアを使用しています。 たとえば、ループバックの場合、 モデルコールが「アクション」の場合、jsonを使用してエラーまたは結果をフロントエンドに送信することができます。

app.get('/your/api/call', function (req, res, next) { 
    var getTeam = function (cb) { 
     app.models.Team.find({}, function (err, teams) { 
     if (err) { 
      cb(err); 
     } else { 
      cb(null, teams); 
     } 
     }); 
    }; 
    async.waterfall([ 
     getTeam 
    ], function (err, team, role) { 
     if (err){ 
res.send(err); //send error to front end 
} else { 
res.send(team); //send result to front end 
} 

    }); 
    }); 

このアプローチでは、ルートレベルの「app.use」機能も使用できます。

+0

だから、あなたはすべての要求をチェックインまたはチェックアウトするエンドポイントを持つように指示していますか?あなたはabitの詳細で説明してください –

0

(これは...彼に定義された最後のミドルウェアを必要とする)

app.use(function(err,req,res){ 
    res.json(err); 
}); 

関連する問題