CURLコマンドでlocalhost(nodejsを使用しています)にいくつかのパラメータを渡そうとしていますが、localhostが正しく読み込めません。私はこのように私はlocalhostに私のPOSTリクエストやってCURLを使用して渡されたNodeJSの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
- CURLの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')));
はまた、私はいくつかの他のカールのバリエーションを試してみました:JSONボディパーサーミドルウェアを追加する
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.私はすでにそれを持っていた:/私は質問にその情報を追加します – Kayvar
'app.use(express.urlencoded());'はどうでしょうか? –