2014-11-06 47 views
0

我用快遞4.0+,這是我的代碼快車4.0請求數據接收到的格式

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

app.use(express.static(__dirname + '/public')); 
app.use(bodyParser.urlencoded({ extended: false })) 
app.use(bodyParser.json()); 

app.listen(SERVER_LISTEN_PORT_TWO); 

app.use(function (req, res, next) { 
    console.log(req.body); 
}); 

在前端方面,我送:

JSON.stringify({「測試」: 「信息」} );

印刷在後端側的req.body數據是:

{ 
    {"test":"message"} : '' 
} 

我用剛剛的NodeJS'預先createServer功能和請求數據將進來作爲

{"test":"message"} 

我的問題是,它會自動錶達json-encodes /將輸入數據串化(看起來像是這樣),我將如何禁用它?我知道我不能對從前端發送的數據進行編碼,但我不確定爲什麼要改變它。

回答

0

您的請求中沒有發送正確的Content-Type。如果您要發送JSON有效負載,則Content-Type需要爲application/json而不是application/x-www-form-urlencoded

+0

在nodejs的createServer func中,如果我設置標題告訴它它將是JSON和json編碼消息,我將不會收到任何數據。現在明確表示,如果我不將內容頭設置爲JSON,它是自動對數據進行json編碼的嗎?我將應用程序內容設置爲json,它似乎接收的內容很好,我只是發現格式設置存在差異。完成我的工作後,我會發佈一個完整的概述。 – PenguinSource 2014-11-06 05:34:10

+0

這取決於你使用什麼發送請求,以便知道如何適當地改變'Content-Type'。也許你可以在你的原始問題中加入這個。 – mscdex 2014-11-06 05:37:12

+0

我當然會在一下。如果你不介意的話,還有一個簡單的問題,我現在將頭文件設置爲JSON,並在前端將字符串進行字符串化處理,當我以快遞方式接收它時,似乎我不需要JSON.parse接收數據;它使用我在那裏的設置自動解析它^^^ – PenguinSource 2014-11-06 05:38:59