【发布时间】:2021-01-19 18:46:36
【问题描述】:
在下面的Controller.js 文件中,我想让第二个mysql 查询等待第一个查询完成,然后使用第一个查询中存储在foundUser 中的数据。
我很难应用 async await,因为第二个查询接收到一个空对象,因为它与第一个查询一起执行。
Service.js
addUser: (data) =>{
return new Promise((resolve, reject) => {
mysqlpool.query(`insert into requests_team(from_id, to_id)
value(?,?)`,
[
data.from_id,
data.to_id
],
(error, results, fields)=>{
if(error){
return reject(error);
}
return resolve(results);
}
);
})
},
Controller.js
addUser: async(req, res) =>{
const body = req.body;
let errors = {};
let foundUser = {}
const queryOne = await mysqlpool.query('SELECT id, email FROM registration WHERE email = ?', [body.email], (error, result)=>{
if(error){
console.log(error)
}
if(result.length > 0){
foundUser = result
}
});
const queryTwo = await mysqlpool.query(`This is where I want to use the value stored in foundUser ${foundUser[0].id}`, (error, result) => {
if(error){
console.log(error);
}
addUser(body, (err, results) =>{
if(err){
console.log(err);
return res.status(500).json({
success: 0,
message: 'Error'
})
}
return res.status(200).json({
success: 1
})
})
})
}
【问题讨论】:
标签: javascript mysql node.js api asynchronous