Node.js 节点通过主体解析器获取发布的变量

Node.js 节点通过主体解析器获取发布的变量,node.js,express,body-parser,Node.js,Express,Body Parser,我正在尝试检索节点应用程序中发布的变量。我正在使用Postman表单数据(就像我在许多其他API测试情况下所做的那样)向我的节点应用程序发布消息。但是当我console.log请求.body时,我得到一个空对象。以下是我的整个节点应用程序: var express = require('express'); var app = express(); var bodyParser = require("body-parser"); app.use(bodyParser.urlencoded({

我正在尝试检索节点应用程序中发布的变量。我正在使用Postman表单数据(就像我在许多其他API测试情况下所做的那样)向我的节点应用程序发布消息。但是当我
console.log
请求.body时,我得到一个空对象。以下是我的整个节点应用程序:

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

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

app.post('/foo',function(request,response){
    console.log(request.body);
});


app.listen(3000, function(){
  console.log('listening on *:3000');
});
发布一些数据后,以下是我的控制台中显示的内容:

listening on *:3000
{}
这是我的package.json:

{
  "name": "api",
  "version": "0.0.1",
  "description": "api",
  "dependencies": {
    "express": "^4.12.4",
    "socket.io": "^1.3.5",
    "body-parser": "~1.12.0"
  }
}

我想我会继续使用body解析器,因为我计划将其作为一个包含json数据的API。应用程序加载正常,没有错误。我遗漏了什么?

当我将内容类型设置为
application/x-www-form-urlencoded
时,使用邮递员和您的代码发布数据时,我得到了预期的控制台输出
npm bodyparser
不处理您刚才发布的
多部分/表单数据


要解析
多部分/表单数据
,请使用
multer
busboy

经过一些测试后,我发现无法解析
多部分/表单数据
,因为它们在自述文件上的状态是,这是邮递员的默认编码

要解析此格式,您可以使用:(再次从自述文件中)

如果只是出于调试目的,请将Postman设置为发送:

x-www-form-encoded
选中相应的复选框(见图)

或原始模式,小心地将mime头设置为
application/json
,否则解析器将忽略它(见图)

就是这样!我只是简单地改变了贴子的正文格式,效果非常好!谢谢就这样!我只是简单地改变了贴子的正文格式,效果非常好!谢谢