提问人:Rémi 提问时间:11/15/2023 更新时间:11/16/2023 访问量:32
我的成分数组有什么问题?得到一个空数组
What's wrong with my ingredients array ? Got an empty array
问:
我目前正在开发一个烹饪应用程序,我在使用 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 指令,但它仍然不起作用。 是因为我在查询函数中加载了数组吗?
答:
0赞
Wil Moore III
11/16/2023
#1
从以下内容更改您的: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);
}
一旦你看到它工作;重新添加循环结构;不过,我可能会映射过来创建数组。results.rows
ingredients
评论
pool.query(..., (error, result) => {...})