NodeJS 我的配料数组怎么了?有一个空数组

0x6upsns  于 2023-11-17  发布在  Node.js
关注(0)|答案(1)|浏览(89)

我目前正在开发一个烹饪应用程序,API有问题。

IngredientsController.get('/', async (req, res) => {
    let ingredients:Ingredient[] = []
    await pool.query({text:'SELECT * FROM Ingredients ORDER BY id'}, (error: Error, results: QueryResult) => {
        if (error) {
            throw(error);
        }
        for (let key in results.rows) {
            let ingredient:Ingredient = new Ingredient(Number(results.rows[key].id), results.rows[key].name);
            ingredients.push(ingredient);
        }
        res.status(200);
        res.json(ingredients);
    })
    console.log(ingredients)
    return res;
})

字符串
当我在浏览器上测试API时,我可以看到整个成分列表。
我的问题是,console.log(ingredients)指令显示一个空数组。
谁能告诉我我的控制器出了什么问题?
正如你在代码中所看到的,我在代码中放置了一个await指令,但是它仍然不工作。是因为我在查询函数中加载了数组吗?

uplii1fm

uplii1fm1#

await从以下位置更改:

await pool.query({text:'SELECT * FROM Ingredients ORDER BY id'}, (error: Error, results: QueryResult) => {
        if (error) {
            throw(error);
        }
        ...
    })

字符串
收件人:

try {
  const results = await pool.query('SELECT * FROM Ingredients ORDER BY id');
  console.log(results);
} catch (error) {
  console.error(error.message);
}


一旦您看到它工作了,就可以重新添加循环结构;不过,我可能会Mapresults.rows来创建ingredients数组。

相关问题