【发布时间】:2021-08-03 08:08:10
【问题描述】:
我正在使用 mysql npm 包从数据库中获取数据。
我的目标是从lists 表中添加每个list(id) 并将其推送到lists 数组中。
我从数据库中获取了正确的数据,但是当我 result 时,查询 lists 数组为空。
我认为我必须在代码中添加async 和await 才能使其工作。在几个地方尝试过,但我没有成功。知道我做错了什么吗?
// GET - get all grocery_lists
Grocery_list.getAll = (result) => {
let lists = []; // <--- List Array
sql.query("SELECT id FROM lists", (err, res) => { // <--- Get all id from 'lists' table
if (err) {
console.log(err);
}
res.forEach(list => { // <--- Loop thru all lists
sql.query(`
SELECT items.id, items.name, items_x_lists.purchased
FROM items_x_lists
INNER JOIN items ON items_x_lists.itemId = items.id
WHERE items_x_lists.listId = ${list.id};
`, (err, res) => { // <--- Get all items for ${list.id} from 'items' table
if (err) {
console.log(err);
}
const list = {};
list.id = res.id;
console.log(list); // <--- { id: 1 } ... { id: 2 }
lists.push(list);
});
});
result(null, lists); // <--- returning empty array instead of [{ id: 1 }, { id: 2 }]
});
};
【问题讨论】:
标签: javascript mysql node.js async-await