2010-07-19 104 views
2

我有Apache httpd服務器和node.js. 我需要模擬每次更改的真實JSON數據。Node.js運行腳本

我發現,我可以的node.js的服務器以獨立模式是這樣運行的:

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(8124, "127.0.0.1"); 
console.log('Server running at http://127.0.0.1:8124/') 

這很酷,但我無法通過AJAX請求訪問它,因爲有不同的端口。

問題:如何運行這個腳本,通過不同的路徑訪問,例如http://localhost/json

感謝(而不是standanole在另一個端口上運行),

回答

2

你可以代理從主Web服務器的nod​​e.js中的連接在dailyjs http://dailyjs.com/2010/03/15/hosting-nodejs-apps/有一個偉大的教程 - 雖然它不是關於Apache,但Nginx

+0

嗯......好一個...但我通過的.htaccess 重寫規則做了^ json.html $ http://127.0.0.1:8124/ [P] – 2010-07-19 11:48:46

0

如果您使用Node.js您可能繞過Apache altogther。我在沒有Apache的情況下運行基本應用程序就好了(無論如何開始),並且我在s3/cloudfront上擁有所有靜態文件(css js,圖像等)。

但是現在我使用NGNIX作爲前端(用於緩存等),而且本質上是將負載均衡傳入到不同的端口,我有多個節點應用程序在不同的端口上運行。所有的1盒btw。

Apache對於node.js並不理想。事實上,如果你的應用程序被撞斷的基本信息,你應該看看這個,看看爲什麼http://scoop.simplyexcited.co.uk/2010/07/05/node-js-brief-overview-2/

如果你只與節點試驗,你不會真的需要 Ngnix(當然不是現在反正)

PS:至於你的應用程序沒有正確返回JSON,我會使用更類似的東西。

res.writeHead(200, { "Content-Type" : "text/plain" }); 

     myJSON.push({/* some stuff during a loop */}) 

    res.write(JSON.stringify(myJSON)); 
    res.end();