首页 > 解决方案 > Nodejs等待mysql2结果,然后继续执行

问题描述

我是nodejs的新手,想玩mysql数据库。

我有这样的代码:

模型/Db_sys_bot.js

const mysql = require('mysql2/promise');

module.exports = {
    async Get_ByBotId(botId) {
        // create the connection
        const connection = await mysql.createConnection({
            host:'dbhost',
            user: 'dbuser',
            password: 'dbpass',
            database: 'dbname'
        });
        
        // query database
        const [rows, fields] = await connection.execute('SELECT * FROM sys_bot WHERE botId = ?', [botId]);

        return rows;
    },
};

main.js

const Db_sys_bot = require("./models/Db_sys_bot");

//Bunch of code

let arrBotData = Db_sys_bot.Get_ByBotId("kokoro");
console.log(arrBotData);
if (arrBotData.length < 1)
    throw "No bot data available in system";

//Bunch of code

所以,在 index.js 中,如果我没有机器人,我想检查数据库,然后处理结束。但是当我尝试时,arrBotData返回承诺对象而不是数据库数据。如何让进程等到查询完成?

我使用数据库进行了很多验证,所以如果我使用回调,我认为嵌套回调太多。

标签: node.jsnode-mysql2

解决方案


推荐阅读