我有一個POST請求來創建文檔。我的問題是貓鼬在驗證失敗時將原始文檔設置爲響應的一部分。我想讓貓鼬不要發現有的文件,主要是哈希密碼。當驗證失敗時,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");
}
這是我的路線
.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);
})
})
我知道一個快速的方法來解決這個問題是OMI把它放在catch塊中,但是有沒有一種貓鼬的方法來做到這一點?
謝謝。
你總是可以操縱你要發送的響應,創建白名單目的。 –