2012-03-20 61 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