2012-11-04 166 views
0

我想返回200 OK中的Json對象。響應節點js中的json對象

我從我的nosql獲取數據。

我知道如何填充結構。 (即在JSON體的值保持)

這裏名稱,類型和地址是固定的:

Name= entity[4] 
Class= entityclass[4] 
Address = entityaddrss[4] 

... enity..will從NoSQL的到來。

我該如何構建和發送一個200K與JSON身體。

response.end({}) 

你能plesae讓我,我應該在end.I寫有所有需要的數據: 名稱=實體[4] 類= entityclass [4] 地址= entityaddrss [4]

+0

這需要更多的細節,如果你想要一個很好的答案。你正在使用哪個數據庫?你使用什麼庫來與數據庫進行交互?在你的例子中有什麼樣的數據結構 - 3個變量,一個對象,一個自定義對象?你使用什麼節點服務器 - 連接或表達?等等。 –

+0

感謝您的回覆。我正在使用Azure。這裏我的問題是更多如何將數據發送給200 OK的用戶。我能夠獲得價值。我知道如何分配和製作如上所示的json主體。我所看到的全部是給予我如何構建和發送200 OK的值。我的數據庫可能會更改爲mongo ..所以不想討論關於數據庫..假設eveerything可用想知道如何發送捷森身體在200好 –

+0

你檢查了這個相關的問題... http://stackoverflow.com/questions/5892569/respond-a-json-object-in-nodejs – almypal

回答

0

現在好了,您在第一條評論中添加了一些細節(您應該編輯問題並添加這些內容),我想我可以回答您的問題。

var http = require('http') 
var port = process.env.PORT || 1337; 

var get_nosql_data = function(callback){ 
    // do whatever it is here you need to get the data back 
    // and format it into a json object. pseudocode follows. 
    // error handling is also needed here, but not relevant to the answer 
    var db = require('db'); 
    db.getData('some query', function(res){ 
    var data = { name: res.entity[4], class: res.entityclass[4], address: res.entityaddrss[4] }; 
    callback(data); 
    }); 
} 

http.createServer(function(req, res) { 
    get_nosql_data(function(data){ 
    res.writeHead(200, { 'Content-Type': 'application/json' }); 
    res.end(JSON.stringify(data)); 
    }); 
}).listen(port); 

只要你在佔位符字符串的數據庫值,我有那裏,你應該啓動並運行。這也應該與蔚藍已經爲你設置的東西一致。

相關的,我強烈建議檢出express - 這會讓你的生活更容易編寫節點的網絡應用程序。

+0

我在這裏調用了一個不同的函數,它將聯繫nomysql.so,因爲這是行不通的。所以,函數被調用,我有數組之前,我開始res.writeHead(200,{..... –

+0

我更新了問題 –

+0

我什麼都看不到,指示'http.serverResponse'對象的'end'方法會自動將傳入的對象序列化爲JSON;對象應該首先傳遞給'JSON.stringify()' – ebohlman