我正在学习如何提出休息请求,但遇到了这个问题
我有3次溃败
一个用于插入
app.get("/addUser",(req, res)=>{
let post = {usersName : "user3", userStarus:"1", GroupId : "3"};
let sql = "insert into test.usersnames set ?";
let query = connection.query(sql, post, (err, result)=>{
if(err) throw err;
console.log(result);
res.send("post added");
})
});
它有效吗
但其他2个如删除和更新无法正常工作
app.get("/deleteUser/:id",(req, res)=>{
let sql = `delete from test.usersnames
where usernames.id=${req.params.id}`;
let query = connection.query(sql, post, (err, result)=>{
if(err) throw err;
console.log(result);
res.send("post deleted");
})
});
它会返回错误
ReferenceError:未定义帖子
有什么区别?当我尝试传递记录的ID时,为什么它可以插入但不能删除或更新记录?
答案 0 :(得分:1)
在第一个例子中,您正在定义变量post
let post = {usersName : "user3", userStarus:"1", GroupId : "3"};
但不是第二个。
答案 1 :(得分:1)
使用let或const定义变量时。它仅在他的范围内可用。所以在你的第二个请求中,post不是定义
答案 2 :(得分:1)
在第二个查询中,您应该使用" Escaping query value"类似于准备好的陈述以避免sql injection attacks:
let sql = 'delete from test.usersnames
where usernames.id=?';
connection.query(sql, [ req.params.id ], (err, result) => { ... });