【发布时间】:2020-06-25 22:56:43
【问题描述】:
我正在尝试将 mySQL 添加到 passport.js 以验证 express.js 中的用户,但似乎无法等待工作。 Server.js:
initializePassport(
passport,
function(email) {
pool.getConnection(function(err, connection) {
if (err) throw err;
console.log("Connected!");
pool.query("SELECT * FROM users WHERE email = ?", email, function (err, result) {
if (err) throw err;
return result[0];
connection.release();
});
});
},
)
护照配置
function initialize(passport, getUserByEmail) {
const authenticateUser = async (email, password, done) => {
try {
const user = await getUserByEmail(email);
console.log(user)
} catch (e) {
return done(e)
}
现在它只是为用户打印 undefined,然后打印 Connected。我不确定为什么 await 用户不工作。
【问题讨论】:
-
这里有很多问题:所有
if (err) throw err;都需要替换为真正的错误处理。将connection.release()放在return语句之后是没有用的,并且不会释放连接。至于您的主要问题,请向我们展示getUserByEmail()代码,以便我们了解为什么它不能与await一起正常工作。 -
对不起,如果不清楚,功能(电子邮件)是getUserByEmail
标签: mysql node.js express passport.js