nodejs mysql ReferenceError:post未定义

时间:2018-01-28 23:13:01

标签: javascript mysql node.js express

我正在学习如何提出休息请求,但遇到了这个问题

我有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时,为什么它可以插入但不能删除或更新记录?

3 个答案:

答案 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) => { ... });