每当我尝试从函数中获取返回值时,它都会返回未定义的值。
尝试过回调
尝试异步
let express = require('express');
let fs = require('fs');
let router = express();
let mysql = require('mysql');
const session = require('express-session');
router.use(session({
secret: 'something random.exe',
resave: false,
saveUninitialized: true,
cookie: {
expires: new Date(Date.now() + 7600000),
maxAge: new Date(Date.now() + 7600000),
}
}));
async function logins (username, password) {
mysql.createQuery("SELECT * FROM Users WHERE username = ?", [username], (err, rows) => {
return "test";
})
}
module.exports = {
login: async (request, response, username, password) => {
logins("username", "password", (getResponse) => {
return console.log(getResponse);
})
}
};
控制台始终返回未定义。
最佳答案
调用logins
时,将传递三个参数:
“用户名”
“密码”
一个功能
查看logins
的定义:
async function logins (username, password) {
它仅对前两个参数起任何作用。
您的回调函数永远不会被使用。
重写
logins
以调用它。另请注意,您已将其标记为
async
,但没有await
任何承诺…,因此可能是一个错误。