2017-06-03 14 views
1

私が作成したエラーメッセージのみが、約束の拒否の文脈でクライアントに送信されるようにするにはどうすればよいですか?ノードエクスプレス:カスタムエラーメッセージをクライアントに返す方法

カスタムエラーが発生していますが、正常に動作しています。

return db.query(`SELECT * FROM events WHERE hostId = ? AND status = ?;`,[userId, ACTIVE_EVENT]) 
.then((results)=>{ 
    if(results.length != 0) 
     throw new Error('You already have an active event') 
}) 

それは後で

.catch(function (err) { 
    console.log(err) 
    res.status(400).send(err.message) 
}); 

をキャッチされているだと素敵なエラーmsgがクライアントになります。

しかし、時には、私は不正な形式のデータベースクエリから厄介なエラーを取得、または何、およびクライアントのようなMSG見るであろう「ER_TRUNCATED_WRONG_VALUE:不適切な時間値を:」

答えて

0

カスタム・エラー・オブジェクトを導入でき、このように男がした: Node.js custom error handling

その後、必要に応じてカスタムエラーのインスタンスをスローします。エラーがカスタムエラーのインスタンスである場合にのみ、メッセージをレスポンスに追加します。

.catch(function (err) { 
    console.log(err) 
    if (err instanceof CustomError) { 
     res.status(400).send(err.message) 
    } 
}); 
関連する問題