2017-12-05 12 views
0

オブジェクトにブール値を持つノードサーバーにhttpリクエストを送信しようとしています。ブーリアンの代わりにノードを受け取るNodejs

私はノードreq.bodyで受け取る:

somekey: "true" 

代わりの

somekey: true 
それは固定することができますどのように

+0

... – Raz

+0

は、あなたの質問に関する詳しい情報が必要です。 –

+0

要求の送信に使用しているコードを貼り付けます。 –

答えて

1

body-parser NPMパッケージを使用してください。

var bodyParser = require('body-parser'); 

//You middleware should have this before the handlers. 
app.use(bodyParser.json()); 

EDIT:

これはあなたのAJAXリクエストがどのように見えるかです。リクエストボディにJSON.stringifyの部分がないか、リクエストヘッダーにContent-Type: application/jsonが設定されていない可能性があります。これは私のために働く。

+0

私はすでにそれを持っています: var bodyParser = require( 'body-parser'); app.use(bodyParser.json()); // jsonエンコードされたボディをサポートします app.use(bodyParser.urlencoded({extended:true})); //エンコードされたボディーをサポートします – Raz

+0

要求を送信するのにどのコードを使用していますか?ここに投稿してください。 –

+0

私は、標準のHTTPリクエスト(ajax)を行っています。オブジェクトの配列を送信しています。それ以上はありません。 – Raz

1

これを自動化する方法を尋ねられたので、これは簡単なループforで動作します。 以下のソリューションは、整数とブール値をそのまま解析します。

var testresponse = { "a": "true", "b": "123", "c": "false", "d": "true", "e": "abc" }; 

for (i in testresponse){ 
    if (testresponse[i] === "true" || testresponse[i] === "false"){ 
     testresponse[i] = JSON.parse(testresponse[i]); 
    } 
    else if (!isNaN(testresponse[i])){ 
     testresponse[i] = parseInt(testresponse[i]); 
    } 
} 

console.log(testresponse); 

デモ:int型でも

var testresponse = { "a": "true", "b": "123", "c": "false", "d": "true", "e": "abc" }; 
 
for (i in testresponse){ 
 
    if (testresponse[i] === "true" || testresponse[i] === "false") testresponse[i] = JSON.parse(testresponse[i]); 
 
    else if (!isNaN(testresponse[i])) testresponse[i] = parseInt(testresponse[i]); 
 
} 
 
console.log(testresponse);

+0

おそらく自動化は正しい言葉ではありません。デフォルトとして設定する必要があります.AJAXを介してオブジェクトの配列を送信しています。私はちょうどそれを自分で解析するのではなく、オブジェクトを(boolとintを使って)保持したい。たとえば、Mongo dbに挿入すると、データは自動的にそのようになります。手動で行う必要はありません。 – Raz

+0

@Razそうは思わない。しかし、私が提供したメソッドを関数にラップし、その結果を返すことができます。これはすべてのAJAXレスポンスに適用できます。あなたの質問に[Add some code](https://stackoverflow.com/posts/47651172/edit)と私はあなたのための例をしようとします。 – NullDev

関連する問題