如何从控制台上的发布请求打印数据

我正试图在我的控制台上打印发布数据


app.js

var express = require('express') , http = require('http'); var app = express(); app.set('port', process.env.PORT || 7002); app.use(express.static(__dirname + '/public/images')); app.post('/Details/',function(request,response,next){ app.use(express.bodyParser()); var keyName=request.query.Key; console.log(keyName); } ); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

初始快照 ::

在这里输入图像描述


用POST-MANtesting下面的数据

在这里输入图像描述


现在我得到错误 ::

在这里输入图像描述


  • 我只是想打印我收到的邮递员的数据是dev …..这是显示为undefined
  • 如何解决这个问题!

[编辑] —-添加path外的主体parsing器

 var express = require('express') , http = require('http'); var app = express(); app.set('port', process.env.PORT || 7002); app.use(express.static(__dirname + '/public/images')); app.use(express.bodyParser()); app.post('/Details/',function(request,response,next){ var keyName=request.query.Key; console.log(keyName); } ); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

仍然有同样的错误

当你有查询string参数时使用request.query 。

表单/数据使用req.body 。

在你的情况下,使用request.body.key

而不是query

 var keyName=request.query.Key; console.log(keyName); 

使用body

 var keyName1=request.body.key; console.log(keyName1); 

码:

 var express = require('express') , async = require('async') , http = require('http'); var app = express(); app.set('port', process.env.PORT || 7002); app.use(express.static(__dirname + '/public/images')); app.use(express.bodyParser()); app.post('/Details/',function(request,response,next){ var keyName1=request.body.key; console.log(keyName1); } ); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 
 var express = require('express'); var app = express(); app.use(express.bodyParser()); app.post('/post/', function(req, res) { // print to console console.log(req.body); // just call res.end(), or show as string on web res.send(JSON.stringify(req.body, null, 4)); }); app.listen(7002); 

你不能调用app.use(express.bodyParser()); 内部中间件/路由处理程序:

  • 请求应该在到达路由处理器之前通过bodyParser()
  • 您将在每个请求中添加新的bodyParser() ,但它们将在app.router之后,并且将永远不会工作

更新使用中间件, body-parser ,为更高版本的Express:使用app.use(express.bodyParser())将报告错误,如: 错误:大多数中间件(如bodyParser)不再与Express捆绑在一起必须分开安装。 请参阅https://github.com/senchalabs/connect#middleware

这可以通过首先安装body-parser中间件来解决:

 npm install body-parser 

然后编写代码如:

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

然后访问request对象的body ,例如console.log(req.body)