如何解决如何修复app.locals ejs中的return return
我想向EJS中的app.locals函数返回true或false,但是什么也不返回,return无法正常工作。这是我的代码:
app.locals.isAdmin = async(uidd) => {
var check = await Admins.find({
userID: [uidd]
}).then(result => {
var result = result.toString();
if(result !== ""){
console.log("Is admin")
return true;
}else{
console.log("Is not admin")
return false;
}
})
};
解决方法
答案
由于您使用的是异步函数,因此await负责解除承诺,因此,您不再需要调用 .then()。我建议使用以下代码。
代码
app.locals.isAdmin = async(uidd) => {
var result = await Admins.find({
userID: [uidd]
});
var check = checkAdmin(result.toString());
return check;
};
function checkAdmin(value) {
if(value !== ""){
console.log("Is admin")
return true;
}
console.log("Is not admin")
return false;
}
参考
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。