每当我尝试从函数中获取返回值时,它都会返回未定义的值。

尝试过回调
尝试异步

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任何承诺…,因此可能是一个错误。

07-26 03:36