2013-03-23 50 views
1

這是我目前的理論爲node.js的是如何工作的:node.js實現背後的基本思想?

  1. 我在我的服務器上安裝的node.js,以便它可以解釋JavaScript文件。
  2. 然後我寫我的JavaScript文件,並把它們放在我的服務器上(就像我用PHP文件)。
  3. 然後我通過我的客戶端JavaScript與這些文件進行交互。

顯然我錯了,因爲我一直在尋找一個過去一個小時左右的教程,這將教會我如何將它安裝在我的服務器上 - 但他們似乎都專注於安裝它在當地。

有人可以給出最終實現將如何工作的點狀節點?

回答

2

與「任何其他機器」一樣,您可以將其安裝在「服務器」上 - 通過installerpackage manager通過admin/root訪問。

現在,這個假設,通過「服務器」,你指的是一臺計算機。相反,如果您的意思是現有的「服務器應用程序」,比如Apache或IIS,則Node.js不會直接與這些應用程序集成。它主要取代它們,允許您從較低級別將整個服務器應用程序定義爲腳本。

這樣的腳本可以在project's homepage找到:寫在節點

這個簡單的Web服務器的「Hello World」爲 每個請求的響應。

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

運行服務器,把代碼放到一個文件example.js,並通過命令行的node程序執行:

% node example.js 
Server running at http://127.0.0.1:1337/ 

除了這個例子,你會想檢查req.methodreq.url,通常通過routerweb framework來確定如何響應。 expresscompoundjs將是很好的選擇。

您仍然可以使用其他服務器應用程序作爲Node.js的HTTP代理,並將流量傳遞給它。但Node.js仍然會分開運行。如果您使用的是IIS,甚至可以使用其中包含大部分設置的iisnode

+0

感謝您的幫助!自發布問題後,我發現(顯然),即使我有權訪問SSH,我也無法在共享主機帳戶上使用node.js。這聽起來對你正確嗎?顯然,即使我確實安裝了它,我也不會被允許訪問某些端口。 – JoeRocc 2013-03-24 14:43:07

+1

@JoeRocc是的。您通常需要[顯式支持Node.js](http://stackoverflow.com/a/3744294)或升級到「* private *」或「* dedicated *」託管計劃的主機,以便您擁有更多控制權。 – 2013-03-24 17:19:57

+0

對不起,遲到的回覆。好的,所以我的整個node.js服務器(電腦)將在一個腳本上運行?如果我想擁有多個網站怎麼辦?用戶是否總是通過單個node.js腳本與我的服務器通信,或者是否以某種方式將某些node.js文件附加到不同的域? – JoeRocc 2013-04-04 06:00:15

0

Node.js是一個服務器端JavaScript引擎,它使您能夠使用JavaScript語言構建Web服務器。它與IIS上的Apache和C#上的PHP類似。有一點不同的是,Node.js是基於事件的,它不像C#IIS那樣創建許多線程。所以,Node.js有處理高併發請求的潛力。對於Node.js教程,您可以參考Node.js網站:http://nodejs.org/api/

然後我通過客戶端JavaScript與這些文件進行交互。

我會不同意這一點和你在一起,因爲什麼Node.js的做的就是創建一個web服務器,服務器和客戶端之間的任何互動是基於HTTP的,這意味着Node.js的web服務器響應來自客戶端的請求的。

+0

好的,我從教程中瞭解到了這一點 - 但我不確定如何開始使用我的服務器上的實現。 – JoeRocc 2013-03-23 14:27:25

+0

我建議你嘗試express.js http://expressjs.com/,它可以幫助你創建一個針對Node.js的Web服務器。 – Shuping 2013-03-23 14:30:30