我正在尝试使用sequelize 在名为“equipment”的数据库列中搜索多个表模型。但是,即使字段已满,我也没有收到任何数据。我正在尝试使用“ promise ”。
但是,如果我简单地调用模型 (//boilerHouse.findAll({ where: { Equipment_type: { [Op.in]: [req.params.name] } } }).then((data) => { ),我可以搜索一张表,但不能搜索全部表。
router.get("/equipmentInfo/:name", (req, res) =>
Promise.all([boilerHouse.findAll({ where: { equipment_area: { [Op.in]: [req.params.name] } } }), compressorHouse.findAll({ where: { equipment_area: { [Op.in]: [req.params.name] } } }), engineHouse33.findAll({ where: { equipment_area: { [Op.in]: [req.params.name] } } }), fireHouse.findAll({ where: { equipment_area: { [Op.in]: [req.params.name] } } }), hfoSeparator.findAll({ where: { equipment_area: { [Op.in]: [req.params.name] } } }), reverseOsmosis.findAll({ where: { equipment_area: { [Op.in]: [req.params.name] } } }), tankFarm33.findAll({ where: { equipment_area: { [Op.in]: [req.params.name] } } }) ])
.then((data) => {
//boilerHouse.findAll({ where: { equipment_type: { [Op.in]: [req.params.name] } } }).then((data) => {
res.render('gigs', {
gigs:data,
//data[0] is response from tableA find
// data[1] is from tableB
})
}).catch(err => console.log(err)));
最佳答案
我不是 Javascript 开发人员,但如果我遇到同样的问题,我会执行以下操作:
- 我将创建一个将需要搜索的内容和搜索位置作为参数的函数
- 为我需要搜索的所有地方创建多个进程这称为异步编程
- 等待所有进程的响应,然后将响应返回给主进程
- 然后做剩下的工作
就像同时处理 4 个请求而不等待其他请求完成
关于javascript - 在数据库中同时搜索多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58035729/