如何解决从猫鼬函数节点JS中获取值
我认为我误解了有关猫鼬的一些基本知识。 我正在使用.find()和mongoose从数据库中获取一个值,但是当退出回调时,它将作为未定义返回。有没有办法将此值传递出去?
先谢谢您, 蒂姆
function getNumberOfRegisteredPupils(sProg){
var numberOfPupils;
User.find({studyProgram: sProg},(err,users)=>{
console.log(users.length); //logs correct value to terminal
return users.length; //returns undefined
});
}
解决方法
您的函数getNumberOfRegisteredPupils
不返回任何内容(该函数中没有return
语句,仅在User.find
函数的回调中!),因此没有返回undefined
。
您要返回承诺:
function getNumberOfRegisteredPupils(sProg){
return User.find({studyProgram: sProg},(err,users)=>{
return users.length;
});
}
或者您也可以按照注释中的建议使用async / await语法:
async function getNumberOfRegisteredPupils(sProg){
const users = await User.find({studyProgram: sProg}).exec();
return users.length;
}
OT:但是,如果您只希望获得一定数量的用户,请查看Model.count()
[docs]。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。