你好,我使用貓鼬從mongodb獲取數據。我有部署在heroku上的應用程序。當我在本地運行我的應用程序時,如果用戶存在,將出現驗證錯誤。如果我在heroku上運行它,我會得到驗證錯誤,但應用程序也崩潰了。Mongoose驗證在Heroku上崩潰
這是我創建用戶的發佈請求。
exports.create = function (req, res, next) {
var newUser = new User(req.body);
console.log(newUser);
newUser.provider = 'local';
newUser.role = 'user';
newUser.save(function(err, user) {
if (err) return res.status(400).json(err);
var token = jwt.sign({_id: user._id }, config.secrets.session, { expiresIn: 60*5 });
res.json({ token: token });
});
};
這是貓鼬驗證。
UserSchema
.path('email')
.validate(function(value, respond) {
var self = this;
this.constructor.findOne({email: value}, function(err, user) {
if(err) throw err;
if(user) {
if(self.id === user.id) return respond(true);
return respond(false);
}
respond(true);
});
}, 'The specified email address is already in use.');
這是錯誤:
「堆」:「在MongooseError.ValidationError錯誤。\ n(/Users/panayiotis/WebstormProjects/SmartHome/node_modules/mongoose/lib/error/validation.js: 22:16)\ n在model.Document.invalidate(/Users/panayiotis/WebstormProjects/SmartHome/node_modules/mongoose/lib/document.js:1162:32)\n at/Users/panayiotis/WebstormProjects/SmartHome/node_modules/mongoose/lib/document.js:1037:16 \ n在驗證(/Users/panayiotis/WebstormProjects/SmartHome/node_modules/mongoose/lib/schematype.js:653:7)\n at/Users/panayiotis/WebstormProjects/SmartHome /node_modules/mongoose/lib/schematype.js:678:11\n在Query。(/ Users/panayiotis/WebstormProjects/SmartHome/server/api/user/user.model.js:80:16)\ n在/Users/panayiotis/WebstormProjects/SmartHome/node_modules/mongoose/node_modules/kareem/index.js:177:19\n at/Users/panayiotis/WebstormProjects/SmartHome /node_modules/mongoose/node_modules/kareem/index.js:109:16\n at nextTickCallbackWith0Args(node.js:420:9)\ n at process._tickCallback(node.js:349:13)「, 」message「 : 「用戶驗證失敗」, 「名稱」: 「ValidationError」, 「錯誤」:{ 「電子郵件」:{ 「屬性」:{ 「類型」: 「用戶定義的」, 「消息」:「 「, 」path「:」email「, 」value「:」[email protected]「 },
雖然我不確定,但你有沒有試圖返回最後的'響應(真);'在你的驗證? – CENT1PEDE