【问题标题】:req.body is giving empty object {} even by using bodyParser即使使用 bodyParser,req.body 也会给出空对象 {}
【发布时间】:2018-07-05 18:09:42
【问题描述】:

这是我正在尝试用mysql制作api的代码,数据库中的表已经插入了用户名和密码

const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));


const conn = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'fsoc',
    database: 'nodesql'
});
//connection 
conn.connect((err) => {
    if (err) {
        throw err;
    }
    console.log('Mysql Connected');
});

//Select query

app.get('/show', (req, res) => {
    let sql = 'SELECT * from users';
    conn.query(sql, (err, result) => {
        if (err) throw err;
        res.send(result[0]);
    });
    console.log(req.body);
});

app.listen(3000,()=>{
    console.log('check on 3000');
})

虽然在邮递员中它显示用户名和密码的 JSON 数据为 { "id": 2, "username": "ujju", "password": "fsoc11" }

【问题讨论】:

  • 从mysql中取出的js中的记录是json没错,你的问题是什么?
  • 可以上传邮递员截图吗?
  • GET 请求中没有正文。这就是为什么。如果你想接收 body 参数,你需要发送一个POST 请求。 w3schools.com/tags/ref_httpmethods.asp
  • 谢谢,现在我明白我做错了什么

标签: mysql node.js express body-parser


【解决方案1】:

您必须将 get 方法替换为 post 以使 req.body 填充已发布的数据,在邮递员中您也必须使用发布请求并提供一些表单数据:

app.post('/show', (req, res) => {

    console.log(req.body); //log posted data

    let sql = 'SELECT * from users';
    conn.query(sql, (err, result) => {
        if (err) throw err;
        res.send(result[0]);
    });

});

【讨论】:

    猜你喜欢
    • 2017-08-27
    • 2017-05-18
    • 2017-01-14
    • 2022-11-26
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    相关资源
    最近更新 更多