0
문서의 body
이 고유한지 확인하고 싶습니다. 고유하지 않은 경우 적절한 오류를 제공하십시오.document.invalidate 응답으로 빈 json을 제공합니다.
NewsSchema.pre("save", true, function (next: any, done: any) {
var self = this;
News.findOne({body: self.body}, "body", function (err: any, body: string) {
if(err)
done(err);
else if(body) {
self.invalidate("body", "the news body already exists", self.body);
done(new Error("the news body already exists"));
}
else {
next();
}
});
});
의도적으로 중복을주는 경우 body
. 빈 json으로 반환됩니다. 나는 그것이 될 것으로 예상했다 반면 :
{
message: 'Validation failed',
name: 'ValidationError',
errors:
{
size:
{
message: 'the news body already exists',
name: 'ValidatorError',
path: 'body',
type: 'String',
value: 'some string'
}
}
}
해결책을 시도했습니다. 그러나 여전히 효과가 없었습니다. 문제를 업데이트했습니다. –
'pre ('save')'에서 findOne을 사용하려고합니다. 실제로 저장되기 전에도 해당 문서를 찾을 수 있습니까? 그것은 항상 그러한 문서를 제시하지 않습니다. 본문이 '고유'라고 가정합니다 –
mongodb를 확인하면 복제 할 때 새 문서가 전혀 작성되지 않습니다. '유일한'본문을 주면 문서가 생성됩니다. 유일한 문제는 내가 빈 json 오류가 발생하지 않습니다. –