2016-12-04 11 views
0

私は自分の製品のためにAPIを作成しました。モニタリング目的でlogglynewrelicをインストールしました。NodeJSネストされた約束エラー処理を復元する

最近、newrelicは私のコードのどこかにエラーがあることを通知しました。私はリターンsendEmail機能しませんでしたので、完全に罰金およびユーザー解決

app.get('/myroute', (req, res, next) => { 
    let payload = { /*...*/ }; 

    return new Promise((resolve, reject) => { 
    /* some code */ 
    return resolve(); 
    }) 
    .then(/* some promise */) 
    .then(() => { 
     /* some code */ 

     sendEmail({params}); // some error was thrown from one of the promise chain 
           // inside this function... 

     return something; 
    }) 
    .then(/* some promise */) 
    .then(() => { 
     res.send(something); 
    }) 
    .catch(next); 
}); 

約束チェーンは、適切な応答を取得します。私はユーザーが長い間応答を待つことを望まないので、私は望んでいません。

function sendMail(params) { 
    return new Promise((resolve, reject) => { 
     /* some code */ 
     return resolve(); 
    }) 
     .then(() => { 
     params.abc.replace('a', 'b'); // error thrown, cannot find replace of undefined. 
     return something; 
     }); 
} 

newrelicエラーをキャッチしますが、logglyはしませんでした。私はすでに修復のformattersセットアップを行っていますが、リクエストが正常に処理され、.catch(next)に収まらないため、十分ではありません。

sendMail機能を解決するソリューションは欲しくないです。このようなバグがあればログに記録したいだけです。

.catch()sendMailにすることなく、このタイプのエラーをキャッチしてログに記録することはできますか?

答えて

関連する問題