如何从控制台上的发布请求打印数据
我正试图在我的控制台上打印发布数据
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)
- 使用ExpressJS POST请求是空的
- Github OAuth使用Express和Ember.jsstream动
- 如何确定nodejs / expressjs函数中可用的方法
- 在ExpressJS中将视图渲染成一个variables(用于AJAX响应)
- Express Node.js框架:如何通过replace一个命名的参数段来重新编写一个URL?
- 防止Express.js崩溃
- 用mongoose,express和node.jssearch表单 错误:发送后无法设置标题
- 使用Node / Express从Firebase中读取数据
- 如何使用节点和expression式从search表单中查询mongodb