nodejs body-parser无法获取数据

时间:2017-07-18 13:23:29

标签: node.js express middleware

var express = require('express'); // Express instance to access its 
var path = require('path');
var mongoose = require("mongoose"); // mongodb ODM

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

app.set('port', process.env.PORT || 3000); //
app.use(express.static(path.join(__dirname, 'node_modules')));

mongoose.connect(config.MONGO_DB_URI, function(error){
  if (error) {
      console.log("Oops! Connection Failed! " + error);
  } else {
    console.log("Ahoy! Connection Successful with Mongo!");
  }
});


app.use('/api', function(req, res){
  console.log("dasasasa");
  console.log(req.body);
});

module.exports = app;

当我记录req.body时,它是一个空对象{}。 身体解析器的版本也是:

npm body-parser -v
2.15.9

我可以在这里找到什么?
我也是和邮递员一起尝试的。

1 个答案:

答案 0 :(得分:0)

bodyParser对象公开了各种工厂来创建中间件。当Content-Type请求标头与type选项匹配时,所有中间件将使用已解析的主体填充req.body属性;如果没有要解析的主体,则不会匹配Content-Type,或者空对象({})发生错误。

确保您使用的内容如下:

Client.js:

$.ajax({
    type: "POST",
    url: '/yourRoute',
    data: data,
    dataType: dataType,
    success: function(data) {
         //do something
    }

});

和server.js

app.use('/yourRoute', function(req, res) {
    console.log(req.body) // should be data from client
})