我正在使用node.js构建应用程序,而我正在使用用户身份验证模块。在该函数中,我检查数据库中是否存在用户的cookie / session_id。如果是,则该函数应返回true。如果没有,则功能应返回false。但是,我的功能一直在返回undefined
&我发了一条注释,返回undefined。
exports.authenticate = function(rawCookie) {
if(rawCookie) {
var processedCookie = rawCookie.split('=');
var cookie = processedCookie[1];
var sessionIdArray = [];
var result;
knex.select('session_key')
.from('users')
.then(function(data) {
data.forEach(function(item) {
sessionIdArray.push(item.session_key);
})
if((sessionIdArray).indexOf(cookie) > -1) {
console.log('session id exists; can log in');
result = true;
} else {
console.log('session id does not exist; hacker alert')
result = false;
}
})
return result //this returns undefined
} else {
return false
console.log('no cookie');
}
}
有人可以帮忙吗?我认为这个问题与异步有关。
提前致谢!