2012-03-20 62 views
0

// Server.js幾個問題

var http = require('http'); 
var path = require('path'); 
var fs = require('fs'); 

http.createServer(function (request, response) { 

    console.log('request starting...'); 

    var filePath = '.' + request.url; 
    if (filePath == './') 
     filePath = './index.html'; 

    path.exists(filePath, function(exists) { 

     if (exists) { 
      fs.readFile(filePath, function(error, content) { 
       if (error) { 
        response.writeHead(500); 
        response.end(); 
       } 
       else { 
        response.writeHead(200, { 'Content-Type': 'text/html' }); 
        response.end(content, 'utf-8'); 
       } 
      }); 
     } 
     else { 
      response.writeHead(404); 
      response.end(); 
     } 
    }); 

}).listen(8125); 

console.log('Server running at http://127.0.0.1:8125/'); 

// index.html的

<html> 
    <head> 
     <title>Rockin' Page</title> 
     <link type="text/css" rel="stylesheet" href="style.css" /> 
     <script type="text/javascript" src="jquery-1.7.1.min.js"></script> 
     </head> 
    <body> 
     <p>This is a page. For realz, yo.</p> 
    </body> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      alert('happenin'); 
     }); 
    </script> 
</html> 

我能夠運行我的靜態頁面,但我有幾個問題下來該線。

  1. 接下來我該做什麼?我的意思是要開發什麼和學什麼?我很困惑..與我目前的網絡服務器有什麼不同。
  2. node.js只是我的Apache Web服務器的替代品。
  3. 誰能解釋清楚我的的NodeJS的主要目的
+0

有時我覺得這個社區很奇怪。你有兩個投票和三個投票來完成一個完全有效的問題。您發佈了代碼並詢問了3個優秀的答案,我在開始使用node.js時也考慮過這些答案。所以,+1和投票保持開放。 – 2012-03-20 13:30:49

回答

2

問題更多的資源

  1. 我接下來做什麼?我的意思是要開發什麼和學什麼?我很困惑..與我目前的網絡服務器有什麼不同。
  2. node.js只是我的Apache Web服務器的替代品。
  3. 誰能解釋清楚我的的NodeJS的主要目的

答案

  1. 先從一些簡單的例子和​​/或教程。我已經分叉掌握節點github,這是一個快速閱讀,但也仍在進行中的工作。我使用expressjs來快速創建靜態網站(如我的在線簡歷)。我還使用node.js和nodeunit來測試JavaScript或執行本來可以在bash,php,batch,perl等中完成的腳本任務。

  2. node.js爲Google的V8 JavaScript引擎提供IO包裝。這意味着JavaScript不會綁定到Web瀏覽器,並且可以與任何類型的IO進行交互。這意味着文件,套接字,進程(phihag的圖靈完整答案)。它可以做任何事情。

  3. nodejs的主要目的是IO代碼是均勻的,並且(大部分)是非阻塞的。例如,在ASP.NET中,當Web服務器收到一個請求時,請求的線程將被阻塞,直到所有處理完成(除非由異步處理程序處理,這是非規則的異常)。在node.js(express,railwayjs等)中,請求處理由事件和回調來處理。代碼是異步執行的,回調在完成時執行。這與ASP.NET的異步頁面類似,主要的區別在於它上面的node.js和web框架不會創建數百萬個線程。我相信Ryan的視頻中討論了線程問題。

3

的node.js是一個平臺(語言,庫和解釋器),和圖靈完備的,即你可以做任何事情它。很可能,你會想要一個以某種方式交互的Web應用程序。看看例如a chat room。也有lots of other resources on how to get started

最後,這取決於你想要你的網站什麼。聊天室?論壇?搜索引擎?多人遊戲?如果您只想傳輸靜態文件(即不需要服務器狀態或客戶端之間的通信),則無需使用node.js.

+0

+1爲'你可以做任何事情'。但是,我認爲海報更多地討論爲什麼* nodejs比他的web服務器示例中的作者塊要多。 – 2012-03-20 13:49:17