NodeJS 实战(一) - 介绍和安装

NodeJS 实战(一) - 介绍和安装

介绍

Node.js不是JS应用、而是JS运行平台

看到Node.js这个名字,初学者可能会误以为这是一个Javascript应用,事实上,Node.js采用C++语言编写而成,是一个 Javascript的运行环境。为什么采用C++语言呢?据Node.js创始人Ryan Dahl回忆,他最初希望采用Ruby来写Node.js,但是后来发现Ruby虚拟机的性能不能满足他的要求,后来他尝试采用V8引擎,所以选择了 C++语言。既然不是Javascript应用,为何叫.js呢?因为Node.js是一个Javascript的运行环境。提到Javascript, 大家首先想到的是日常使用的浏览器,现代浏览器包含了各种组件,包括渲染引擎、Javascript引擎等,其中Javascript引擎负责解释执行网 页中的Javascript代码。作为Web前端最重要的语言之一,Javascript一直是前端工程师的专利。不过,Node.js是一个后端的 Javascript运行环境(支持的系统包括*nux、Windows),这意味着你可以编写系统级或者服务器端的Javascript代码,交给 Node.js来解释执行,简单的命令类似于:

#node helloworld.js

Node.js采用了Google Chrome浏览器的V8引擎,性能很好,同时还提供了很多系统级的API,如文件操作、网络编程等。浏览器端的Javascript代码在运行时会受到 各种安全性的限制,对客户系统的操作有限。相比之下,Node.js则是一个全面的后台运行时,为Javascript提供了其他语言能够实现的许多功 能。

 

Node.js采用事件驱动、异步编程,为网络服务而设计

事件驱动这个词并不陌生,在某些传统语言的网络编程中,我们会用到回调函数,比如当socket资源达到某种状态时,注册的回调函数就会执行。 Node.js的设计思想中以事件驱动为核心,它提供的绝大多数API都是基于事件的、异步的风格。以Net模块为例,其中的net.Socket对象就 有以下事件:connect、data、end、timeout、drain、error、close等,使用Node.js的开发人员需要根据自己的业 务逻辑注册相应的回调函数。这些回调函数都是异步执行的,这意味着虽然在代码结构中,这些函数看似是依次注册的,但是它们并不依赖于自身出现的顺序,而是 等待相应的事件触发。事件驱动、异步编程的设计(感兴趣的读者可以查阅笔者的另一篇文章《Node.js的异步编程风格》), 重要的优势在于,充分利用了系统资源,执行代码无须阻塞等待某种操作完成,有限的资源可以用于其他的任务。此类设计非常适合于后端的网络服务编 程,Node.js的目标也在于此。在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟。通过事件注册、异步函数,开发人 员可以提高资源的利用率,性能也会改善。

安装

首先从官网上下载NodeJS,下载完成后按照提示进行安装。

node.exe 是主程序

node_modules 是模块库,包含文件操作模块,HTTP服务器模块等。

npm.cmd 是模块管理和分发工具,用来管理NodeJS下的模块。

 

接着是万年不变的helloworld

 

创建一个名为 app.js 的文件,输入以下代码

var http = require("http");

var app = http.createServer(function(req,res){
    res.writeHead(200, {"Content-Type": "text/html"});
    res.write("hello world!");
    res.end();
});

app.listen(3000);

保存后,运行脚本,windows: Shift+鼠标右键, 选择在此处打开命令窗口

然后输入:

node app.js

打开浏览器,输入 localhost:3000。如果页面上成功显示了 "hello world!",说明部署OK啦

 

参考文献

[1] http://nodejs.org/

[2] http://www.infoq.com/cn/articles/what-is-nodejs

posted @ 2013-11-06 15:52  onelee  阅读(391)  评论(0)    收藏  举报