將Mongoose作爲ODM與NodeJS一起使用,但沒有完全理解錯誤處理的工作方式。它有效,但看起來不正確,並且與文檔不符,所以我擔心這條路走下去會困擾我。MongooseJS的意外結果findOne()
例如,這裏有一個基本的登入路線:
app.post('/signin', function(req, res){
var email = req.body.email;
var password = req.body.password;
mongoose.model('User').findOne({
email: email,
password: password
}, function(err, user){
if (err){
console.log('Database Error')
return res.json({error: 'Database Error'})
} else {
if (!user) {
console.log('User not found.');
return res.json({error: 'Email and/or password incorrect.'})
} else {
console.log('User ' + user.email + ' found. Logging in.');
res.json({
token: jwt.sign({}, 'top-secret', {subject: user}),
data: data[user]
})
}
}
})
})
我對此特別擔心:
if (err) {
//do something
} else {
if (!user){
//do something else
} else {
//log the user in
}
}
還沒有真正使用蒙戈在今天之前,但這種感覺就像很多的條件錯誤處理。有什麼我在這裏沒有正確理解?
對我來說這看起來很好。 – Molda