Node.js 的简易web服务器

标签: jQuery | 发表时间:2011-11-19 19:57 | 作者:Shawphy bingo
出处:http://shawphy.com

网上关于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/");

相关 [node js 简易] 推荐:

node js 断点调试

- - Web前端 - ITeye博客
大部分基于 Node.js 的应用都是运行在浏览器中的,. 例如强大的调试工具 node-inspector. node-inspector 是一个完全基于 Node.js 的开源在线调试工具,提供了强大的调试功能和友好. 的用户界面,它的使用方法十分简便. 首先,使用 npm install -g node-inspector 命令安装 node-inspector,然后在终.

什么是Node?

- We_Get - 博客园新闻频道
译者按:前不久Oreilly出了一本小册子“What is Node?”,扼要的讲解了Node的身世和所适用的场景,作者文笔轻松流畅、内容充实,是非常难得的学习资料.   译文全文:http://jayli.github.com/whatisnode/index.html.   作者:Brett McLaughlin ,原文:What is Node?.

Node入门

- - CSDN博客编程语言推荐文章
作者:  Manuel Kiessling. 翻译:  goddyzhao &  GrayZhang &  MondayChen. 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识. 本书绝不是一本“Hello World”的教程. 你正在阅读的已经是本书的最终版.

浅析Hadoop Secondary NameNode,CheckPoint Node,Backup Node

- - CSDN博客云计算推荐文章
Hadoop SecondaryNameNode并不是Hadoop 第二个NameNode,它不提供NameNode服务,而仅仅是NameNode的一个工具. 这个工具帮助NameNode管理Metadata数据. NameNode的HDFS文件信息(即Metadata)记录在内存中,client的文件写操作直接修改内存中的Metadata,同时也会记录到硬盘的Edits文件,这是一个Log文件.

[译]什么是Node?

- blacktulip - Taobao UED Team
译者按:前不久Oreilly出了一本小册子“What is Node?”,扼要的讲解了Node的身世和所适用的场景,作者文笔轻松流畅、内容充实,是非常难得的学习资料. 译文全文:http://jayli.github.com/whatisnode/index.html. 作者:Brett McLaughlin ,原文:What is Node?.

用node作桌面开发

- InterMa - CNode社区
node的定位是,server-side javascript. 但程序员最爱做的事,就是把一个东西用在不该用的地方. 那么,可以把node用在桌面开发上吗. 把Javascript用在桌面开发上,早有先例,比如GTK+的gjs,还有Qt的QML(顺带一提,QML代表着桌面开发的另一个方向,a promising way),GNOME3中,也用javascript作为桌面插件的开发语言.

無痛安裝 NodeJS 和 Node Framework Express

- Hming - 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY
直接到官網下載 Stable 的版本吧,目前是 node-v0.4.10.tar.gz,也可以先看看 API Document. 安裝 Ububtu 相關套件. 下面會使用最原始的編譯方式,所以必須安裝 g++ 套件,否則下 ./configure 的時候,會吐出來沒有安裝過的套件. 兩種方法:1.用 apt-get install nodejs 2.

nodejs上HTML分析利器node-jquery

- - 博客园_首页
      首先描述产生这篇随笔的场景:我需要获取项目在jenkins构建的最新Javascript Coverage显示在供管理层次查看的项目情况Report上,但是由于jenkins没有直接的API取得数据所需数据,所以我们只能从自建的容器发布Javascript Coverage数据API,供Report项目使用.

我们为什么使用Node

- - 移动开发 - ITeye博客
引言:Node 已经迅速成为一个可行并且真正高效的web 开发平台. 在Node 诞生之前,在服务端运行JavasScript 是件不可思议的事情,并且对其他的脚本语言来说,要实现非阻塞I/O 通常需要依赖特殊的类库. 但Node 的出现改变了这一切. 本文选自《Node.js硬实战:115个核心技巧》,让我们跟着本文快速的复习一下Node是什么以及他的主要特性有哪些.