gpt4 book ai didi

node.js - 模块函数在nodejs中返回未定义

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:45 25 4
gpt4 key购买 nike

我试图从模块函数返回一个值并从不同的文件调用该函数,该函数执行但返回未定义
下面是代码:

这是模块

teacherController={}
teacherController.getClassid = (req)=>{
Teacher.findOne({token:req.session.user})
.then((doc)=>{
var classid = doc.class
console.log(classid) // this logs the correct value
return doc;
}).catch((err)=>{
if(err) throw err;
})
}
module.exports = teacherController;


这是我调用模块函数的地方

student.get('/ranking',(req,res)=>{
var classid = teacher_con.getClassid(req);
console.log(classid); //this logs: undefined



});


谢谢!

最佳答案

已编辑
您必须使用promise 和thenable 函数

 student.get('/ranking',(req,res)=>{
teacher_con.getClassid(req).then(res =>{
console.log(classid); //you will get the doc
});
});

在模块中

    teacherController.getClassid = (req)=> { //use Promise
return new Promise((resolve, reject)=>{
Teacher.findOne({token:req.session.user})
.exec((err, doc)=>{
if(err){
reject(err);
}
else{
resolve(doc);
}

})
});
}

关于node.js - 模块函数在nodejs中返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60108914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com