【发布时间】:2019-06-04 20:04:22
【问题描述】:
我是 Mongoose 的新手,也使用 async/await。现在我有一个 Mongoose 模式,带有一个静态方法,如下所示:
const userSchema = new Schema({
username: String,
pass: String
});
userSchema.statics.checkExist = async function(username){
return await this.findOne({username: username}, function(err, res){
if(err){
return err;
}
if(res){
return true;
}
else{
return false;
}
})
}
静态方法checkExist() 应该接受用户名,并检查是否已经存在具有相同用户名的文档。如果是,它应该返回 true,否则返回 false。我在我的 NodeJS/Express 服务器中使用它,如下所示:
router.post('/auth/login', async (req, res) =>{
let username = req.body.username;
let existBool = await UserModel.checkExist(username);
console.log(existBool);
res.send({'hash': existBool});
});
我希望 existBool 是真/假布尔值。相反,checkExist() 似乎根本没有调用回调函数。相反,它返回findOne() 的结果,这是一个具有匹配用户名字段的对象。我在这里做错了什么?
【问题讨论】:
标签: node.js mongoose promise async-await