3 回答

TA贡献1860条经验 获得超9个赞
您可以在不使用 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'})
}
});
});

TA贡献1744条经验 获得超4个赞
该值[Object object]与您发送的数据无关。这与您打印值的方式有关。
[Object object]表示您收到了一个对象。类型的值通常当你要么concatinate返回object用string。
例子:
var obj = {a: 1};
console.log('Printing ' + obj); // Prints [object object]
因此,您无需连接 ,而是object可以stringify将对象打印出来。
例子
var obj = {a: 1};
console.log('Printing ' + JSON.stringify(obj)); // Prints {"a":1}
或者
var obj = {a: 1};
console.log('Printing ', obj); // Prints formatted {"a":1}

TA贡献2051条经验 获得超10个赞
res.status(200).json({
user: user,
token: token
});
这就是您发送成功的方式。您正在将响应格式化为 JSON。但是在失败时,您将返回普通的 JS 对象。将失败响应格式化为 JSON 对象将解决您的问题。
添加回答
举报