我正在制作一个API。当我发送正确的数据进行登录时,我得到JSON,但是当我发送不正确的数据时,我得到了这个[对象对象]消息,为什么?
提供正确的信息时。
这是我的代码。
router.route('/login').post(function (req, res, next) {
console.log('i should be here when path match to login', req.body);
UserModel.findOne({
username: req.body.username,
})
.exec(function (err, user) {
if (err) {
return next(err);
}
if (user) {
var passwordMatch = passwordHash.verify(req.body.password, user.password);
if (passwordMatch) {
var token = generateToken(user);
res.status(200).json({
user: user,
token: token
});
} else {
next({
message: "password didnot match",
status: 400
})
}
} else {
next({
message: 'Invalid Username',
status: 400
})
}
});
});
最佳答案
您可以执行此操作而无需使用next。试试这个代码,它将立即起作用!
router.route('/login').post(function (req, res, next) {
console.log('i should be here when path match to login', req.body);
UserModel.findOne({
username: req.body.username,
})
.exec(function (err, user) {
if (err) {
console.log(err);
res.status(500).json({message:'Backend error'})
}
if (user) {
var passwordMatch = passwordHash.verify(req.body.password, user.password);
if (passwordMatch) {
var token = generateToken(user);
res.status(200).json({
user: user,
token: token,
message:'Login successful'
});
} else {
res.status(400).json({message:'Wrong password'})
}
} else {
res.status(400).json({message:'User does not exist'})
}
});
});