0

いずれかの時点で、未定義で何かをしようとしてエラーが発生した場合、HTTP 500 ページにリダイレクトして適切に処理するのではなく、Express アプリ全体が TypeError でクラッシュします。

これらの例外を一般的に処理する方法はありますか? または、ルーター メソッドを手動でチェックインする必要がありますか?

4

3 に答える 3

1

docs - Express Error handlingからこれを試しましたか?

エラー処理ミドルウェアは、通常のミドルウェアと同じように定義されますが、署名 (err、req、res、next) であるアリティ 4 で定義する必要があります。

app.use(function(err, req, res, next) {
   console.error(err.stack);
   res.send(500, 'Something broke!');
});

必須ではありませんが、通常、エラー処理ミドルウェアは最後に定義されます...

于 2012-12-30T10:35:57.170 に答える
0

驚異的に述べたように、エクスプレスエラーハンドラーミドルウェアを使用して、集中化された場所でエラーを処理できます。

app.use(function(err, req, res, next) {
console.error(err.stack);
res.send(500, 'Something broke!');
});

ルートからエラーを渡すよりも、次のようにこのミドルウェアにエラーを渡すために使用できます

app.get('/login',function(req,res,next){
next("your error"); // The error middle-ware handle this error.
})
于 2012-12-30T15:59:23.557 に答える
0

多分try { ... } catch(e) {...}あなたが探しているものですか?または、値が未定義でないかどうかを確認します。シンプルif (value) { ...に仕事をする

于 2012-12-30T10:31:25.730 に答える