我想通过CURL命令将一些参数传递给我的本地主机(这是使用nodejs),但我的本地主机没有正确读取它们。如何检索使用CURL传递的NodeJS中的POST数据?
我做我的POST请求我的本地主机这样的:
curl --data "db_name=auto&old_db=Lab.tar.gz&new_db=627999E00_10.tgz"
--noproxy localhost
-H "Accept: text/plain"
-H "Content-Type: text/plain"
-X POST http://localhost:8084/auto
我尝试使用节点找回我的数据PARAMS这样的:
app.post('/auto',function(req,res){
var db_name=req.body.db_name; //undefined
var old_db=req.body.old_db; //undefined
var new_db=req.body.new_db; //undefined
...
});
但db_name
,old_db
,new_db
是全部总是undefined
。
此外,req.body
是一个空对象{}
而且req.url
只是/auto
如何我找回我与我的节点卷曲节目传递的参数?
================== 版本
- 的NodeJS V6.5.0
- ExpressJS v3.14.0
- 卷曲v7.22.0
================== 更新
我ExpressJs配置如下:
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.urlencoded());
app.use(app.router);
app.use(express.static(_path.join(__dirname, '..', 'Client')));
而且我尝试了一些其他的卷曲变化:
curl --noproxy localhost
-H "Accept: text/plain"
-H "Content-Type: application/json"
-X POST
-d "{'db_name':'auto','old_db':'Lab.tar.gz','new_db':'627999E00_10.tgz'}"
http://localhost:8084/auto
是否把'app.use(express.bodyParser());'在开始的时候做什么? –
@ J.Chen我已经有了:/我将这个信息添加到 – Kayvar
那里'app.use(express.urlencoded());'? –