我正在使用AWS Node.js lambda函数,我试图在MySQL数据库中插入多个表。我正在使用mysql节点包。我在数据库中有两个表(标题和详细信息)。我有一个JSON对象数组,其中包含标题信息,其中包含对象内部的详细信息数组。它看起来像这样:
{
id:1,
name: "bob",
detail: [salary: 50000, age: 35]
}, {
id:1,
name: "jane",
detail: [salary: 60000, age: 28]
}
我需要循环遍历此数组中的每个对象并填充:
我尝试使用Node.js的标准“mysql”库,但由于connectoin.query(sql,fn)的性质,第二个参数是回调,我不知道如何将其关闭。我不知道如何使用标准的mysql库遍历标题和标题内的细节,因为.query函数需要回调而不是Promise
谢谢
您可以使用nodejs utils包中的promisify
实用程序将mysql(或模块中的特定函数)包装在Promise中,允许您使用async / await。像这样的东西:
const mysql = require('mysql')
const util = require('util')
const pool = mysql.createPool({ ... })
...
pool.query = util.promisify(pool.query)
...
try {
var result = await pool.query('SELECT * FROM users')
} catch(err) {
throw new Error(err)
}