节点(Express)请求主体为空
我正在使用Node.JS和Restify今晚的简单的API,并通过req.params.fieldname
接收参数方面的一切罚款。 我安装了CouchDB和Cradle,以便开始尝试将这些参数放到数据库中,但是在安装好所有东西后,req.params开始回到空的状态!
因为其他原因,我应该一直使用Express来开始,所以我尝试转换,看看我能否得到它的工作,但没有这样的运气。
var express = require('express'); var app = express.createServer(); app.configure(function(){ app.use(express.bodyParser()); app.use(express.cookieParser()); }); app.post('/', function(req, res){ res.send(req.body); }); app.listen(8080, function() { console.log('Printomatic listening at', app.url); });
我已经尝试了无数的变化,但不pipe什么req.body回来空。 我正在使用http-consoletesting,并发送简单的POST /
内容{"name":"foobar"}
我很沮丧,在这一点上,我开始怀疑当安装Cradle / CouchDB(分别安装了NPM和Homebrew)的时候是否有什么不妥。 任何帮助将不胜感激,因为这是有点时间敏感。 提前感谢您的帮助!
你提到你发布JSON数据( {"name": "foobar"}
)。 确保你发送Content-Type: application/json
,否则bodyParser
将不会parsing它。
例如:
$ curl -d 'user[name]=tj' http://local/ $ curl -d '{"user":{"name":"tj"}}' -H "Content-Type: application/json" http://local/
这是因为bodyParser
parsingapplication/json
, application/x-www-form-encoded
和multipart/form-data
,并根据Content-Type
select使用哪个parsing器。