如何解决为什么我的函数返回“未定义”但可以与 console.log 一起使用?请问怎么解决?
我在 nodeJS 中使用我的令牌验证功能时遇到问题。我的“返回”总是返回“未定义”......但 console.log 有效。 此函数的实用程序是验证 JWT 令牌,将令牌信息与我的数据库中的 id 和 admin 标签进行比较:
const verifyTokenValidity = (token) => {
try{
const decodedToken = jwt.decode(token,'JWT_PASS_SECRET')
const checkTokenIdentity_query = sql = fs.readFileSync('./sqlquery/checkTokenIdentity_query.sql').toString()
const tok_account_id = decodedToken.account_id
const tok_is_admin = decodedToken.isadmin
pool.query(checkTokenIdentity_query,[tok_account_id],(error,results) => {
const bdd_account_id = String(JSON.stringify(results.rows[0].ac_account_id)).replace(/['"]+/g,'')
const bdd_is_admin = String(JSON.stringify(results.rows[0].ac_isadmin)).replace(/['"]+/g,'')
if (tok_account_id == bdd_account_id || tok_is_admin == bdd_is_admin){
return 'valid'
}
else {
return 'invalid'
}
})
}
catch(error) {
return 'invalid'
}
}
当我使用有效令牌执行函数时:
console.log(verifyTokenValidity('ayJhbG.........iaXNhZG1pbiI6ImZhbHNlIiwi......TkzLCJleHAiOjE2MTYxODgzOTN9......JT0PhXCjV00'))
>>>>> undefined
如果我用 console.log 替换所有出现的 return 我有一个“有效”的结果。 我认为存在回调问题,但经过大量研究和测试后,我不明白我的代码有什么问题。
感谢帮助我,
F4nch。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。