【问题标题】:POST data into MySQL with NodeJS and Postman使用 NodeJS 和 Postman 将数据发布到 MySQL
【发布时间】:2019-11-14 01:30:43
【问题描述】:

我一般是初学者,并尝试将 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 之后的键,但可能我的语法错误

【问题讨论】:

  • id = req.body.id, firstname = req.body.firstname, surname = req.body.surname - 隐式全局变量?哎呀!尽快开始使用 ESLint。

标签: javascript mysql node.js express postman


【解决方案1】:

假设您使用的是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】:
    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);
        });
    });
    

    试试这段代码,只需将你的值替换为 ?并再次运行邮递员。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2020-06-03
        • 2018-02-04
        • 2018-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-17
        • 2018-04-27
        • 2017-02-01
        相关资源
        最近更新 更多