Node.js 的简易web服务器

 网上关于Node.js的介绍已经铺天盖地了,但我就没找到一个简单的web服务器给我做测试用。

实际上Node.js只需要一个exe文件和一个js文件就可以搭建服务器了,用来随便测试页面之类的用起来比nginx还方便。所以我就随手写了一个简单的。只可用于http服务,没有更多功能的js文件。

用起来很简单:
1,先去 http://nodejs.org/下载最新的Node.js可执行的exe文件。比如:http://nodejs.org/dist/latest/node.exe
2,把下面的代码保存为一个 server.js 文件,把它跟刚才下载到的 node.exe 文件放在一起。
3,把server.js文件拖到node.exe文件上就OK了

就这三步之后,整个目录下的文件都可以通过 http://127.0.0.1:8080/ 来访问了,测试用起来非常方便。

其他系统下也如法炮制,官网上也有下载mac和linux的版本

 

 
 
  1. var http = require("http"), 
  2.     url  = require("url"), 
  3.     path = require("path"), 
  4.     fs   = require("fs"); 
  5.   
  6. http.createServer(function (req, res) { 
  7.     var pathname=__dirname+url.parse(req.url).pathname; 
  8.     if (path.extname(pathname)=="") { 
  9.         pathname+="/"
  10.     } 
  11.     if (pathname.charAt(pathname.length-1)=="/"){ 
  12.         pathname+="index.html"
  13.     } 
  14.   
  15.     path.exists(pathname,function(exists){ 
  16.         if(exists){ 
  17.             switch(path.extname(pathname)){ 
  18.                 case ".html"
  19.                     res.writeHead(200, {"Content-Type""text/html"}); 
  20.                     break
  21.                 case ".js"
  22.                     res.writeHead(200, {"Content-Type""text/javascript"}); 
  23.                     break
  24.                 case ".css"
  25.                     res.writeHead(200, {"Content-Type""text/css"}); 
  26.                     break
  27.                 case ".gif"
  28.                     res.writeHead(200, {"Content-Type""image/gif"}); 
  29.                     break
  30.                 case ".jpg"
  31.                     res.writeHead(200, {"Content-Type""image/jpeg"}); 
  32.                     break
  33.                 case ".png"
  34.                     res.writeHead(200, {"Content-Type""image/png"}); 
  35.                     break
  36.                 default
  37.                     res.writeHead(200, {"Content-Type""application/octet-stream"}); 
  38.             } 
  39.   
  40.             fs.readFile(pathname,function (err,data){ 
  41.                 res.end(data); 
  42.             }); 
  43.         } else { 
  44.             res.writeHead(404, {"Content-Type""text/html"}); 
  45.             res.end("<h1>404 Not Found</h1>"); 
  46.         } 
  47.     }); 
  48.   
  49. }).listen(8080, "127.0.0.1"); 
  50.   
  51. console.log("Server running at http://127.0.0.1:8080/"); 
相关文章
相关标签/搜索