検索

ホームページ  >  に質問  >  本文

node.js - Express でのグローバル例外処理

1. ルーティング例外をキャプチャするための次のサーバー構成は正しいですか?
サーバー.js

リーリー

2. 以下は、Promise (async/await) がない場合、通常通り例外がスローされ、サーバー
xxxRouter.js

でキャプチャされます。 リーリー

ただし、promise(async/await)の場合、コンソールにエラーが報告され、サーバー内のキャプチャがキャプチャできず、qタイムアウトが発生します

リーリー

xxxRouter.js

リーリー

3. 実際の使用では、すべてのルートが例外をトライ/キャッチして処理する必要があり、非常に冗長に感じられます

リーリー
PHPzPHPz2749日前1676

全員に返信(2)返信します

  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:37:30

    async 関数は、処理する 2 番目のパラメーターの Promise 对象,这个函数中抛出的异常需要通过 Promise 对象的 catch()then() を返します。

    もちろん、外側の関数で処理したい場合は await,就不是用 catch()then() 来处理了,而是像同步调用那样用 try ... catch ... を使用します。

    私の印象では、Express 自体は Promise/yield/async/await をサポートしていません (新しいバージョンが関連するサポートを開発しているかどうかはわかりません)。現在では、Promise/yield/async/await のサポートが充実している Koa が一般的に使用されています。

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:37:30

    process.on('unhandledRejection', processErrorHandler);

    返事
    0
  • キャンセル返事