javascript - 使用带有 Sequelize 的两个不同表一个接一个地运行查询(序列)
问题描述
我有两张表,一张用于用户名、密码和 id,另一张用于用户进行的操作,包括用户名和文件。从 session 获取 userId 后,我会在 user 表中进行查询以了解用户的用户名。之后,我使用用户名并查询第二个表操作,我想在其中检索所选用户的文件名。
我使用 sequelize ,并且由于我无法修改数据库的结构,因此表没有与主键和外键连接。所以我的目标是按顺序运行查询。第一次完成后,第二次开始。我将不胜感激任何帮助。非常感谢。
app.get("/dashboard", redirectLogin, (req, res) => {
if (req.session.userId) {
let promise1= User.findOne({ where: { id: req.session.userId } })
console.log('promise ' + promise1)
let userFound = promise1.then(userFound =>{
console.log( 'utente trovato 1 '+ userFound.username);
Operations.findAll({where:{cliente:userFound.username}})
.then(opFound => {
console.log(opFound.filename); // return undefined
return opFound.filename
});
});
}
});
解决方案
你可以使用异步/等待它,它也会减少你的代码行。
app.get("/dashboard", redirectLogin, async (req, res) => {
try {
if (req.session.userId) {
let userObj = await User.findOne({ where: { id: req.session.userId } })
let opFound = await Operations.findAll({ where: { cliente: userObj.username } });
console.log(opFound.filename)
return opFound.filename;
}
} catch (err) {
return err;
}
});
推荐阅读
- python-3.x - 使用 Cartopy 绘制跨越日期线的 geoJSON 轨迹而不会出现错误线
- python - 当我 scan_dragto 平移我的画布时,所有画布项目都“正确移动”但它们的坐标不会改变
- apache-kafka - 在 Kafka MirrorMaker 2 上进行活动活动配置时避免主题上的集群前缀
- javascript - 如何在 html 文档中运行脚本并在节点中获取结果文档?
- java - 有没有办法在这段代码中使用一个while循环而不是2?
- react-native - #
无法克隆 - c - 无法通过 arduino 向 ESP8266 发送数据
- java - 狗名单 动物名单... 解决方案是什么?
- javascript - 如何从具有相似值的其他 2 个对象数组创建对象数组?
- ios - Swift中括号内数字的正则表达式