0 Comments

Node.js提速指南(2)

发布于:2013-09-12  |   作者:广州网站建设  |   已聚集:人围观

简单的Node.js 服务实例

作为Node.js代码实例,这里我们列举一个略微过度设计的“世界你好”程序,该程序通过读取/tmp文件夹中的文件找出招呼的来源:


  1. var http = require('http');  
  2.    var fs = require('fs');  
  3.    http.createServer(function(req, res) {  
  4.        fs.readFile("/tmp/hellomsg.txt", function(error, text) {  
  5.            res.writeHead(200, {'Content-Type': 'text/plain'});  
  6.                if (error) {  
  7.                    res.end('Not ready to say hello...\n');  
  8.                }  
  9.                else  
  10.            {  
  11.                    res.end('Hello '+text+'\n');  
  12.                }  
  13.        });  
  14.    }).listen(1337, "127.0.0.1");  
  15.    console.log('Server running at http://127.0.0.1:1337/');  

逐行检测将使我们从这里观察到更多信息。
广州网站建设,网站建设,广州网页设计,广州网站设计


  1. var http = require('http');  
  2.    var fs = require('fs');  

JavaScript不具备任何可以作用于模块的工具包系统,因此Node.js使用的是Common.js协议以完成库操作。Require函数将检索库并返回一个句柄;var http=将该值保存在“http”当中。接下来我们重复“fs”处理,也就是文件系统库。这些句柄可以用于在库内部调用函数,如下列代码所示…


  1. http.createServer(function (req, res) { 

这里还有很多其它内容。http库被要求创建一套HTTP服务器。当该服务器上存在任何类型的请求时,所调用的都是定义过的函数。请注意,所有对象都能够被传递给函数:此处请求对象将包含请求生成的信息,而响应对象则会被由请求所产生的程序响应所填充。

但首先我们需要获取打招呼目标的文本信息…


  1. fs.readFile("/tmp/hellomsg.txt", function(error, text) { 

fs.readFile 函数需要一个能够读取的文件名,这样它在读取文件时就能够调用我们即将指定的回调函数。该回调函数会传递两个值,其内容不是错误信息就是文件内容。在我们继续下一步之前,需要简化整个流程并开始创建响应。响应对象同样具备协助建立响应的函数:


  1. res.writeHead(200, {'Content-Type': 'text/plain'}); 

在这里,我们写入响应头。正在添加的是HTTP状态200,之后媒体描述内容也将以纯文本的形式写入。现在要做的工作是写入响应内容并将响应发回服务器以继续传递…


  1. if (error) {  
  2.           res.end('Not ready to say hello...\n');  
  3.       }  
  4.       else  
  5.   {  
  6.           res.end('Hello '+text+'\n');  
  7.       }  

res.end 函数是来自http库的实用速记位;它可以写成


  1. res.write('Hello '+text+'\n');  
  2.  res.end();  

res.end出于便于响应的目的而进行了扩展,其中一个字符串中通过允许该函数通过最终语句的形式包含了该响应。Res.end函数同时还向服务器发送了一个信号,指明该响应已经生成完毕,随时可以发送。
广州网站建设,网站建设,广州网页设计,广州网站设计


  1. });  
  2.  }).listen(1337, "127.0.0.1");  

根据函数的定义,创建得出的http服务器函数列表现在可以进行调用,以通知其监听位置…


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

而且控制台可以发送消息,显示我们正在运行中的内容。到此,我们就搭建起了一套简单的HTTP服务器。它处于连接等待状态,一旦连接形成,它就会切换为工作状态并调用我们的函数。我们的函数要求读取文件,而非中止请求;在文件打开、读取以及关闭步骤完成后,它会调用一个函数。所调用的这个函数负责以可阅读的文本生成“你好”响应并将其打包发回服务器。

Node.js 资源

◆ Nodejs.org: Node.js平台的主站点。在这里可以为Node.js下载资源代码并查看每个版本的升级文档。

◆ npmjs.org: Node软件包管理器首页,这里有NPM的详细安装说明。大家还可以在这里搜索或者浏览NPM软件包。

◆ howtonode.org: 一个专门阐释Node.js相关技术的博客。

◆ Node: Up and Running: 这是O’Reilly出版社专门为Node.js打造的开发专题网站,大家可以在这里在线阅读大量资料。

◆ NodeGuide.com: 由Felix Geisendörfer打造的Node.js选择指南。

◆ NodeCloud.org: 一个汇总了上述及更多与Node.js相关的站点的资源目录。

原文链接:

http://www.h-online.com/open/features/The-H-Speed-Guide-to-Node-js-1363974.html

标签:
飞机