使用NodeJS和Postman将数据发布到MySQL

时间:2019-07-03 11:06:29

标签: javascript mysql node.js express postman

我通常是一个初学者,并且尝试将MySQL与nodeJS结合使用以能够将项目集成到WordPress中。

app.post('/users/add', (req, res) => {
  id = req.body.id, firstname = req.body.firstname, surname = 
  req.body.surname  
  let sql = "INSERT INTO `users_tbl` VALUES (id, firstname, surname)";          

  db.query(sql, [id, firstname, surname], 
  (err, rows, fields) => {

    if(!err) 
      res.send("User successfully added");
    else 
      console.log(err);
  });
})

使用给定的代码,我可以通过Postman添加一个条目,但是一个空条目。 我已经尝试过将值分配给VALUES之后的键,但是也许我的语法错误

4 个答案:

答案 0 :(得分:0)

app.post('/users/add', (req, res) => {
   id = req.body.id, 
   firstname = req.body.firstname, 
   surname = req.body.surname  
   let sql = "INSERT INTO `users_tbl` (id, firstname, surname) VALUES 
              (?,?,?)";          

   db.query(sql, [id, firstname, surname], (err, rows, fields) => {
       if(!err) 
         res.send("User successfully added");
       else 
         console.log(err);
    });
});

尝试使用此代码,只需将您的值替换为?并再次运行邮递员。

答案 1 :(得分:0)

假设您正在使用this module


db.query(sql, [id, firstname, surname]

这里您要将变量传递到查询中,以替换占位符值。


let sql = "INSERT INTO `users_tbl` VALUES (id, firstname, surname)";

但是在这里,您只是放置了列名而不是占位符。

将其更改为:

let sql = "INSERT INTO `users_tbl` VALUES (?, ?, ?)";

此外:您可能应该将id字段设为自动递增字段,而不是用户提交的值。

答案 2 :(得分:-1)

在您的sql查询中,您不是传递变量(id,名字和姓氏)而是一个字符串。 我认为这是您想要实现的目标:

let sql = "INSERT INTO `users_tbl` (ID, firstname, surname) VALUES ("+id+", "+firstname+", "+surname+")";

答案 3 :(得分:-2)

添加一个断点或使用console.log检查您是否真的在req.body中获取了body字段。 通过邮递员发送请求并在正文中发送原始json时,尝试在标头中将“ Content-Type”设置为application / json。