zoukankan      html  css  js  c++  java
  • 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
    ");
    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开发

    讨饭咯,行行好,给点吧~~~
  • 相关阅读:
    每日构建(三)
    asp.net mvc(九)
    表达式树对性能的影响
    asp.net mvc(八)
    31天重构指南之六:降低字段
    使用OPENROWSET将数据从excel导入到sql server
    31天重构指南之三: 提升方法(pull up )
    31天重构指南之一:封装集合
    31天重构指南之七:重命名
    职场杂谈之由仲秋福利想到的
  • 原文地址:https://www.cnblogs.com/thingk/p/3272464.html
Copyright © 2011-2022 走看看