【问题标题】:Why my database displays undefined even I inserted data in POSTMAN?为什么即使我在 POSTMAN 中插入数据,我的数据库仍显示未定义?
【发布时间】:2019-11-07 21:28:03
【问题描述】:

下面是我在 ExpressJS 中的 MYSQL 中插入数据的代码。

router.post('/user', function (req, res) {
        let sql = "INSERT INTO Member (id, Memb_ID, First_Name, Middle_Name, Last_Name, Address, url) VALUES (null, '" + req.body.Memb_ID + "',  '" + req.body.First_Name + "', '" + req.body.Middle_Name + "', '" + req.body.Last_Name + "', '" + req.body.Address + "', '" + req.body.url + "')";

        myDB.query(sql, function (err, results) {
            if (err) throw err;
            res.send({
                Success: "Data inserted."
            })

        });
    });

它在我的数据库中插入数据,但我的数据库看起来像这样

我不知道为什么会这样输出。这是我的 JSON

编辑: 这是我的 MYSQL 表

【问题讨论】:

  • 所有列都未定义?将图像与标题列放在一起。它令人困惑且难以想象。
  • 嗨@Yeou 我更新了帖子。谢谢
  • 检查您是否获得了请求变量中的所有值。你可以试试console.log(req.body.Memb_ID)。也可以console.log(sql)
  • 那么您的数据没有被提交。检查一下。
  • 是的,我通过重新启动服务器和 POSTMAN 解决了​​这个问题。

标签: mysql node.js database express postman


【解决方案1】:

您能确保以下操作已完成吗?

  1. 请求中的content-type标头必须是application/json

  2. 使用body-parser(或类似库)解析 JSON 有效负载 -> 您可以打印 req.body 来验证这一点。

  3. 如果您可以确认这些值是可访问的,我会建议转义查询值,如 https://github.com/mysqljs/mysql#escaping-query-values(或您使用的任何 mysql 库中)中提到的 - 特别是因为它是一个 DML 查询。

(我还假设查询中使用的字段名与数据库中的字段名匹配,并且数据类型正确。)

【讨论】:

  • 呃,我应该把 content-type 和 application/json 放在哪里?我的代码中没有。
  • 嗨 Vin,您可以在 POSTMAN REST 客户端的标题部分添加它。
  • 您能否检查 req.body 是否包含您从 REST 客户端发布的值? (console.log(req.body); 应该告诉)
  • 它成功了,IDK 为什么,我刚刚在 POSTMAN 中创建了另一个窗口并复制了值并重新运行服务器和 POSTMAN,它就成功了。此外,它还打印在控制台中。
  • 酷。如果您能够排除故障,请告诉我们它是如何工作的。谢谢
【解决方案2】:

在你的邮递员电话图像中,它清楚地显示你的内容类型是text

  1. 在邮递员调用标头中将 Content-type 更改为 application/json
  2. 或者您可以从正文选项卡中选择

由于您的正文内容是text,如图所示,它发送的纯文本导致 DB 中未定义。但服务器期待json

希望对您有所帮助。

【讨论】:

    【解决方案3】:

    查看您是否在 Controller 的相应方法签名中添加了 @RequestBody 注释...

    检查这个 1 的 bcz 我有同样的问题,我在添加这个后解决了.. 它可以帮助你和其他人......也......

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    相关资源
    最近更新 更多