在继续使用 NodeJS 之前等待异步函数

时间:2021-03-02 20:27:16

标签: mysql node.js express asynchronous node-mysql2

我目前使用的是 NodeJS v10.24.0,并且在将 MySQL 查找设置为与 ExpressJS 异步时遇到了一些问题。

主要内容:

    app.get('/player/:username', async function (req, res) {

        var uuid = await sqlMgr.lookupName(req.params.username, db, dbConf.prefix)
        if (!uuid) {
            res.status(404).send("Player not found");
        } else {
            res.redirect('/uuid/' + uuid);
        }

    })

sqlMgr.lookupName:

async function lookupName(username, db, prefix) {
    const sql = "SELECT `uuid` FROM `" + prefix + "players` WHERE `playerName` = '" + username + "';";

    db.query(sql, function (err, rows) {
        if (err) {
            throw (err);
        }

        let uuid = rows[0].uuid;
        return uuid;
    })
}

我一直在胡思乱想,并在任何可能的地方使用 await 和 async,但在 MySQL 查找完成之前,页面只会呈现并且 uuid 将返回为 undefined。

0 个答案:

没有答案