2017-06-22 10 views
2

Node.js内のエクスプレスボディパーサーでサーバーにカスタム文字列値を要求したいが、投稿された価値。ノードjsリクエストのボディタイプは[Object、Object]

[対象オブジェクト]

サーバ -

var express = require('express') 
var bodyParser = require('body-parser') 
var app = express() 
app.use(bodyParser.urlencoded({ extended: true })) 
app.post('/', callback) 

function callback(req, res) { 
    console.log('post/' + req.body) 
    res.send('post success!') 
} 

クライアント -

var request = require('request') 
request.post({ 
    url: 'http://127.0.0.1:8000/', 
    body: 'testing' 
}, function optionalCallback (err, httpResponse, body) { 
    if (err) { 
    return console.error('upload failed:', err) 
    } 
    console.log('Upload successful! Server responded with:', body) 
}) 

クライアントログ -

アップロードに成功しました!サーバーは次のように応答しました。

Serverログ -

ポスト/ [対象オブジェクト]

は、どのように私は、文字列の内容"testing"代わりを得ることができますか? ありがとうございました!

+0

「req.body」から「toString()」を削除します。 – gforce301

+1

は 'JSON.stringify'、' .log'の代わりに 'console.dir'を使って試してみましたか? –

答えて

1

form dataから投稿する必要があります。request[forms]からは、適切なapplication/x-www-form-urlencoded httpヘッダーが適用されます。エンドポイント上で次の...

// -- notice the keyed object being sent 
request.post('http://127.0.0.1:8000/', { 
    form: {customKey: 'testing'} 
}, function (err, httpResponse, body) { 

    console.log(body); // post success! 
}); 

を守って、あなたがこれをログアウトしたい場合は、[オブジェクトのオブジェクト]を参照したい場合は、そのような...

app.post('/', function (req, res) { 

    console.log('post/ ', req.body.customKey'); // -- post/ testing 
    res.send('post success!'); 
}); 
+0

ありがとうございます。できます – Deidara

2

ように行うことができますconsole.logの内容は、これを試してみてください。

const util = require('util'); 
... 
console.log(`post/${util.inspect(req.body,false,null)}`); 

詳細情報:util.inspect

0

誰かが見つけるかもしれないトン彼の便利な...サーバー側のために、私は、受信したreq.body(application/x-www-form-urlencoded)のキーと値のペアを解析し、それらをコンソールに表示する小さなJSスニペットを書いた有効なJSONオブジェクトとして:

const util=require('util');let s=util.inspect(req.body) 
.split(`Content-Disposition: form-data; name`);s.splice(0,1); 
let r=`{"`;s.forEach((e)=>{r+=e.split(`\\r\\n------`)[0] 
.replace(`"\\r\\n\\r\\n`,`":"`).replace(`\': \'"`,``) 
.replace(`=`,``)+`",`});s=r.slice(0,-1)+`}`;console.log(s); 
関連する問題