我有两个表,一个表用于具有用户名,密码和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
});
});
}
});
答案 0 :(得分:0)
您可以使用async / await来等待它,这也会减少您的代码行。
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;
}
});
答案 1 :(得分:0)
请尝试使用此代码段。
app.get("/dashboard", redirectLogin, (req, res) => {
if (req.session.userId) {
return User.findOne({ where: { id: req.session.userId } })
.then((user) => {
return Operations.findAll({where:{cliente:user.username}})
})
.then((opFound) => {
console.log(opFound.filename); // return undefined
return opFound.filename
})
}
});