2013-07-02 31 views
3

我有一個測試對象JSON如下如何JSON對象傳遞給服務器的nod​​e.js

{ Id: 100, plugins: [{ Name: 'Test', Version: '2' }] } 

我使用

var json = {}; 
json.Id = 100; 
var plugins = []; 
json.plugins = plugins; 
json.plugins.push({"Name" : "Test", "Version" : "2"}); 

我有一個客戶端側功能製造AJAX post請求創建如下

function postJSON() { 
    $.ajax({ 
     type: 'POST', 
     url: 'features', 
     data: json, 
     dataType: 'json' 
    }); 
    } 

我將嘗試只是現在但輸入console.log(req)讀我的服務器上的此信息它似乎沒有得到我的JSON對象。

app.post("/features", function(req, res) { 
    console.log(req); 
}) 

感謝您的幫助!

+0

你可以通過簡單地寫'無功JSON =創建對象{ID:100,插件:[{名稱: '測試',版本: '2'}]}' – SLaks

回答

5

只要您安裝了bodyParser()中間件,Express應該將JSON請求負載解析爲req.body

+0

感謝Slaks!我做了忘記添加bodyParser()的業餘錯誤 P.S - 我將基於用戶安裝的插件動態構建JSON對象,以便僅用於說明目的 – dopplesoldner

0

你的創作是錯誤的。 JSON是基於鍵值的存儲,意味着它具有散列的語法。試試這個:

var json = {}; 
json['Id'] = 100; 
var plugins = []; 
plugins.push({"Name" : "Test", "Version" : "2"}); 
json['plugins'] = plugins; 
+2

這不是真的;他的JSON非常好。點符號和索引符表示法之間沒有區別。 – SLaks

+0

哦,真的嗎?我被教導的方式,我被告知這是正確的語法。我不知道你可以用兩種不同的方式做 – taylorc93

+1

你被教導不正確。如果你傳遞一個變量('someObject [someVar]'),你應該只使用索引器表示法。否則,你應該總是使用'.'。 – SLaks

相關問題