node.js - 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
返回承诺对象而不是数据库数据。如何让进程等到查询完成?
我使用数据库进行了很多验证,所以如果我使用回调,我认为嵌套回调太多。
解决方案
推荐阅读
- javascript - 为什么它说错误的消息?
- c# - 响应内容长度不匹配:写入的字节太少
- r - 在 R 中删除异常值的替代方法
- r - 根据数据框子集在包含另一列变量的数据框中创建一个新列
- javascript - 如何测试数组中的所有值都不等于特定值
- python - 我试图在 django 中使用日历来发布事件,在这种情况下是 DJANGO-SCHEDULER(其他人似乎已经过时),但我没有成功
- python - 如何允许用户直接下载存储在 django 中我的媒体文件夹中的文件?
- c++ - 将 24 小时制转换为 12 小时制
- svelte - 子反应性语句更改时正在执行反应性语句?
- delphi - 位图的快速平滑调整大小