nodeJs学习过程之认识nodejs

nodeJs只是听说过,没见过,没玩过。从新手开始,我想慢慢掌握它。

一、首先,我想知道nodeJs是什么?

摘自百度百科:

Node.js是一套用来编写高性能网络服务器JavaScript工具包,一系列的变化由此开始。比较独特的是,Node.js会假设在POSIX环境下运行Linux 或 Mac OS X。
如果是在Windows下,那就需要安装MinGW以获得一个仿POSIX的环境。在Node中,Http是首要的。Node为创建http服务器作了优化,所以在网上看到的大部分示例和
库都是集中在web上(http框架、模板库等)。

点:

1. 用于服务器端;

2. 是一套javascript工具包;

3. 和http关系密切。

Node.js是一个可以快速构建网络服务及应用平台。该平台的构建是基于Chrome's JavaScript runtime,也就是说,实际上它是对GoogleV8引擎(应用于
Google Chrome浏览器)进行了封装。V8引擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境
下运行得更好。例如,在服务器环境中,处理二进制数据通常是必不可少的,但Javascript对此支持不足,因此,V8.Node增加了Buffer类,方便并且高效地 处理二进
制数据。因此,Node不仅仅简单的使用了V8,还对其进行了优化,使其在各环境下更加给力。

点:

1. 是一个平台,可快速构建网络服务及应用;

2. 封装谷歌v8引擎。

结:

Node.js 是服务器端的 JavaScript 运行环境,它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色,Node.js 采用 V8 引擎,同样,Node.js 
实现了类似 Apache 和 nginx 的web服务,让你可以通过它来搭建基于 JavaScript 的 Web App。除此之外,nodejs还有很多有用的模块,可简化开发,比如向终端输出字符串。

nodeJs到底是啥?它不是js应用,而是服务器端js运行平台,即一个javascript的运行环境和库。可以编写系统级或者服务器端的Javascript代码,交给 Node.js来解释执行。就像html遇到php会由php解释器解释,jsp由jvm解释执行一样。

 

二、再者,它有哪些特性呢?

nodejs作为一个新兴的后台,有很多吸引人的地方:
RESTful API
单线程
Node.js可以在不新增额外线程的情况下,依然可以对任务进行并行处理 —— Node.js是单线程的。
它通过事件轮询(event loop)来实现并行操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。 非阻塞IO V8虚拟机 事件驱动

解释如下:

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

 

三、具体可以干啥?

服务器端javascript应用,web应用等。

四、nodeJs环境搭建

windows下简单安装搭建可参考我的博文,其他系统安装可参看这里

五、一个小实例

1     var http = require('http');
2     server = http.createServer(function (req, res) {
3     res.writeHeader(200, {"Content-Type": "text/plain"});
4     res.end("Hello oschina\n");
5     })
6     server.listen(8000);
7     console.log("httpd start @8000");

 确保nodejs环境安装成功,对以上文件编译执行通过,在浏览器地址栏输入localhost:8000,可以看到输出。

以上资料来自互联网,参考文档如下:

1. 百度百科

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

3. http://limu.iteye.com/blog/1013223

推荐几本nodejs书籍(csdn可下载):

1. nodejs小书

2. nodejs开发指南

3. node web开发

 

posted @ 2013-08-21 13:34  love/coder  阅读(3135)  评论(0编辑  收藏  举报