【问题标题】:req.body returns empty object when posting using form data in nodejs express在 nodejs express 中使用表单数据发布时,req.body 返回空对象
【发布时间】:2016-01-20 17:26:31
【问题描述】:

我正在使用简单的文本输入对“/”进行发布请求,并希望看到在 req.body.course 中输入的数据。当控制台记录 req.body.course 时,我得到一个空对象。

HTML

<html>
    <head><title>New Course</title></head>
    <body>
      <form id="myform" action="/" method="post">
        <input type="text" name="course" id="mytext" />
        <input type="submit" id="mysubmit" />
      </form>
    </body>
</html>

服务器

var express = require('express');
var bodyParser = require('body-parser');

var app = express()
app.use(bodyParser.json())

app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');

app.post('/', function (req, res) {
    var course = req.body.course; 
    res.send(course);
});

app.get('/', function (req, res) {
    res.render('index');
});

app.listen(4000, function() {
    console.log("Server is listening on port", 4000);
});

REQ.BODY 的输出

{}

【问题讨论】:

    标签: node.js forms post express


    【解决方案1】:

    试试

    app.use(bodyParser.urlencoded())
    

    【讨论】:

      【解决方案2】:

      您必须在标头中说明您的请求的 MIME 类型是什么 只需添加请求即可。

       Content-Type='application/json'
      

      【讨论】:

        【解决方案3】:

        尝试添加urlencoded中间件。

        app.use(bodyParser.urlencoded())
        

        app.use(bodyParser.urlencoded({
           extended: true
        }))
        

        这会解析 URL 编码的正文,因为您的请求格式是 urlencoded。

        您可以参考bodyparser urlencoded文档。

        【讨论】:

          猜你喜欢
          • 2023-04-06
          • 1970-01-01
          • 2022-01-11
          • 2017-08-30
          • 1970-01-01
          • 2016-11-20
          • 1970-01-01
          • 1970-01-01
          • 2011-11-23
          相关资源
          最近更新 更多