我有这条接收POST请求的路由:
router.post('/auth', (req, res, next) => {
const username = req.body.username;
const password = req.body.password;
User.getUserByUsername(username, (err, user) => {
if(err)
return res.json({success: false, msg: err});
if(!user)
return res.json({success: false, msg: 'User not found'});
return res.json(user);
});
});
这是我目前收藏的文件:
db.User.find().pretty()
{
"_id" : ObjectId("59d0e0465d91ce115f50935c"),
"name" : "Soufiane",
"email" : "example@gmail.com",
"username" : "example",
"password" : "123"
}
使用Restman,这是我的请求主体:
{
"username": "example",
"password": "123"
}
但结果是"用户未找到",这是我的getUserByUsername函数:
module.exports.getUserByUsername = (_username, callback) => {
const query = {username: _username};
User.findOne(query, callback);
};
"用户" model连接到正确的数据库,并且连接Status = 1,我在控制台上没有错误,那么可能是什么问题? 提前致谢
答案 0 :(得分:0)
解决了,mongoose文档说:
第一个参数是模型集合的单数名称 是为了。 Mongoose会自动查找您的复数版本 型号名称。因此,对于上面的例子,模型坦克是为了 坦克收集在数据库中。
我没有注意到这一点,因为我的模型名称是User,我应该有一个名为users的集合,但我创建'用户&#39后,我在数据库中的所有内容都是User ;收藏品,一切都解决了。