のを使用しているExpress.js
アプリがあります。私はMongoDBから重複キーエラー(エラーコード11000)を無視し、204のHTTP応答を返す必要があります。考えはsave
のpost
フックを使用することです、エラーを消費し、それを無視してください。マングース:ポストフックのエラーを受け取ります
サービス層
const createMyModel = (req, res, next) => {
MyModel.create({...data})
.then(createRes => res.status(204).send())
.catch(next)
}
スキーマ - あなたがそれらを完全に無視したい場合は、私はあなたがschema.optionsオブジェクトにfalseにemitIndexErrorsを設定することができると思い
MySchema.post('save', (err, res, next) => {
if (!err || (err.name === 'MongoError' && err.code === 11000)) {
// The duplicate key error is caught here but somehow
// the catch on my service layer gets triggered
next();
}else{
next(err)
}
});
emitIndexErrorsについてよく知っているが、それでも問題は解決しない。ポストフックで特定のエラーを1つだけ消費することです。 –