为什么即使在POSTMAN中插入了数据,我的数据库仍显示未定义的内容?

时间:2019-06-26 02:14:46

标签: mysql node.js database express postman

下面是我在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."
            })

        });
    });

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

DB

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

编辑: 这是我的MYSQL表 TABLE

2 个答案:

答案 0 :(得分:0)

您可以确保完成以下操作吗?

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

  2. 使用body-parser(或类似的库)来解析JSON负载->您可以打印req.body进行验证。

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

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

答案 1 :(得分:0)

在邮递员致电的图片中,清楚地表明您的内容类型为text

  1. 在邮递员邮件标题中将Content-type更改为application/json
  2. 或者您可以从“身体”选项卡中选择 enter image description here

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

希望有帮助。