我对NodeJS和Express很陌生,并且很难使用sqlite3
模块。
假设我有一个包含 2 个表的数据库:cars,car_details。
这是我正在尝试做的一个简单示例:
router.get('/get-car-info', (req, res) => {
let car_details = [];
let sql = '';
let cars = ['audi', 'bmw', 'benz', 'honda', 'toyota];
cars.forEach(car => {
sql = `SELECT * FROM car_details WHERE name=${car}`;
db.get(sql, function(err, data) {
if (!err) {
car_details.push(data);
}
});
});
res.json({ 'success': true, 'cars': car_details });
});
这是一个基本示例,但足以描述问题。
由于db.get
是异步请求,因此在循环完成时,响应为空,因为它在查询完成之前被调用。
如果只有一个查询就可以了,我会在其中发送响应,callback
但不确定在出现循环/递归情况时如何实现。
提前致谢...