文書を作成するPOST要求があります。私の問題は、検証が失敗した場合、mongooseが元の文書を応答の一部として設定することです。私はmongooseは、主にハッシュされたパスワードを既存の文書を送信しないようにしたいと思います。検証が失敗した場合、Mongooseは既存の文書を送信します
これはこれは、パス検証が失敗したときにマングースは、パスワードを送信しませんが、文書を作成または更新するとき、それだけ動作しますが、ないので、私が追加したいくつかのコードで応答
{
"code": 11000,
"index": 0,
"errmsg": "E11000 duplicate key error collection: ole.tournament index: name_1 dup key: { : \"First tournament\" }",
"op": {
"name": "First tournament",
"tournType": "single elimination",
"seriesType": "bo1",
"password": "$2a$10$xhA5UkpK.xH4QROdHf/Os.djs9CcU3C8PPcM8j99RocYPHS3x0tIC",
"_creator": "5992734ebaa773270898e248",
"_id": "59927361baa773270898e24a",
"participants": [],
"startedDate": null,
"createdDate": "2017-08-15T04:06:57.640Z",
"__v": 0
}
}
次のとおりです。
TournamentSchema.methods.toJSON = function(){
var tournament = this;
var tournamentObject = tournament.toObject();
return _.omit(tournamentObject, "password");
}
これは私がこの問題を解決する簡単な方法は、OMIである知っている私のルート
.post('/add', authenticate, (req, res) => {
req.body._creator = req.user._id;
tournament = new Tournament(req.body);
tournament.save().then((tournDoc) =>{
res.status(200).send(tournDoc);
}).catch((e) => {
res.status(400).send(e);
})
})
ですキャッチブロックでそれをttingしかし、これを行うためのマングースの方法はありますか?
ありがとうございました。
あなたはいつもあなたが送信していること応答を操作することができますオブジェクト。 –