【问题标题】:Why it doesn't update the Date in my database?为什么它不更新我数据库中的日期?
【发布时间】:2019-12-02 03:23:30
【问题描述】:

下面是我在 VueJs 中的代码,它试图将当前时间插入我的数据库。

 printDate() {
  var myDate = moment(this.currentDate).format("YYYY-MM-DD HH:mm:ss");
  console.log(myDate);

  axios
    .put("http://localhost:9000/api/date/000002", myDate)
    .then(response => {
      console.log(response);
    });
  }

这是我服务器中的代码

    router.put('/date/:MEMB_N', function (req, res) {
    /* 2019-07-24 11:17:45 */
    let sql = "UPDATE Printing SET PrintDate = ? WHERE MEMB_N = ?";
    myDB.query(sql, [req.body.PrintDate, req.params.Memb_ID], function (err, results) {
        if (err) {
            throw err;
        }
        res.send({
            Success: "True"
        })
    })
});

但是当我使用 POSTMAN 尝试它是否有效时,它成功地将日期插入到我的数据库中。

编辑: 这是控制台

编辑 2:POSTMAN 结果

【问题讨论】:

  • @JaromandaX 它不包含任何错误,只是它无法更新值
  • 你还没看到?查看网络选项卡中的请求正文 - 它是否有一个名为“PrintDate”的“键”
  • @Vin 你能解释一下你在 put 请求正文中发送 myDate 并且在服务器端你从查询参数中获取日期吗??
  • 您只发送一个字符串文字,您的服务器端代码需要带有PrintDate 属性的东西。试试axios.put(url, { PrintDate: myDate })。要解析 JSON 请求正文,您还需要确保您使用的是 app.use(express.json())
  • @JaromandaX 是的,但是 OP 说它通过 PostMan 工作,他们在查询字符串中发送它。这整个问题没有多大意义

标签: javascript node.js api vue.js


【解决方案1】:

你必须在 put 请求中使用 header

axios
    .put("http://localhost:9000/api/date/000002",
 header:{{"Content-Type": "text/plain"}}
  myDate)
    .then(response => {
      console.log(response)
    });
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2016-12-12
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多