MySQL节点JS删除无工作-影响0行
我正在尝试创建一个post路由,该路由将从多个表中删除用户的数据。我在mySQL workbench中检查了数据库用户是否具有此权限。但是,当我单击前端上的“删除”时,查询似乎正在运行,但行不会被删除。你能告诉我哪里出了问题吗MySQL节点JS删除无工作-影响0行,mysql,node.js,delete-row,Mysql,Node.js,Delete Row,我正在尝试创建一个post路由,该路由将从多个表中删除用户的数据。我在mySQL workbench中检查了数据库用户是否具有此权限。但是,当我单击前端上的“删除”时,查询似乎正在运行,但行不会被删除。你能告诉我哪里出了问题吗 app.post('/disposal', redirectLogin, async(req, res) => { const user = res.locals; userStmt = `DELETE FROM users WHERE us
app.post('/disposal', redirectLogin, async(req, res) => {
const user = res.locals;
userStmt = `DELETE FROM users WHERE user_name ='${user.user_name}'`;
cashStmt = `DELETE FROM CASH WHERE user_name ='${user.user_name}'`;
tradesStmt = `DELETE FROM trades WHERE user_name ='${user.user_name}'`;
holdingsStmt = `DELETE FROM trades WHERE user_name ='${user.user_name}'`;
await connection.query(userStmt, (err, results) => {
if (err) throw err;
console.log(results);
connection.query(holdingsStmt, (err, results) => {
if (err) throw err;
console.log(results);
connection.query(cashStmt, (err, results) => {
if (err) throw err;
console.log(results);
});
connection.query(tradesStmt, (err, results) => {
if (err) throw err;
console.log(results);
});
});
});
req.session.destroy(err => {
if (err) {
return res.redirect("/dashboard");
}
res.clearCookie(SESS_NAME);
res.send("Ninja disposed!");
})
})
如果使用的是
async/await
,则不需要嵌套调用。
由于res.locals
是一个包含user
属性的对象,因此必须获取user属性
您可以使用对象解构
语法来获得它
试试这个
app.post('/disposal', redirectLogin, async (req, res) => {
const { user } = res.locals;
userStmt = `DELETE FROM users WHERE user_name ='${user.user_name}'`;
cashStmt = `DELETE FROM CASH WHERE user_name ='${user.user_name}'`;
tradesStmt = `DELETE FROM trades WHERE user_name ='${user.user_name}'`;
holdingsStmt = `DELETE FROM trades WHERE user_name ='${user.user_name}'`;
try {
let results = await connection.query(userStmt);
console.log(results);
let holdinResult = await connection.query(holdingsStmt);
console.log(holdinResult);
let cashResult = await connection.query(cashStmt);
console.log(cashResult);
let tradesResult = await connection.query(tradesStmt);
console.log(tradesResult);
} catch (error) {
throw error
}
req.session.destroy(err => {
if (err) {
return res.redirect("/dashboard");
}
res.clearCookie(SESS_NAME);
res.send("Ninja disposed!");
})
})
我需要将user=res.locals更改为{user}=res.locals,因为前者返回“未定义”,因为它没有正确提取。好的,开始尝试了,它仍然运行,没有错误,但日志显示我为user\u name=undefined。因此,我将user=res.locals更改为{user}=res.locals,以便可以正确地提取它。现在它起作用了。