Node.js简介

       如果说的简单一点,Node.js是个服务器,像Tomcat一样,接受Web请求,并在进行业务处理之后,将结果返回给前台,Node.js适用于高并发的请求,适用于IO较多,计算较少的业务,下面说说Node.js的特点并作解释。


事件驱动
       什么是事件驱动?网上很多人在说这个,但都说的很迷惑,给人高大上的感觉,又摸不着头脑。其实,我认为事件驱动就是基于回调,举个例子,进程A运行到某处需要进行I/O操作,正常情况下进程A需要处理完I/O之后才能继续下面的操作,在事件驱动模型下,处理I/O的操作将会与后面的程序并行处理,I/O处理完成之后,IO的结果将交给事件处理函数(也就是回调函数)来处理,这样就减少了等待I/O的时间。

主进程单线程
       这其实是JavaScript语言的特点,所谓“单线程”就是指一次只能完成一件任务,如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。这样呢,结合Node.js是基于事件的,就有一个事件的队列,Node.js依次执行事件队列里的事件。使用单线程有什么好处呢?不妨先看看多线程有什么坏处:
1、多线程开销大。如果服务器是多线程的(Tomcat就是这样,没有一个新的请求,就会开启一个新的线程),那么每一个线程将会最少占用2M的系统内存,这样的话,如果请求非常多,服务器的压力将会非常大。
2、多线程容易出现错误。开发多线程的程序非常困难,容易出错,程序员需要考虑死锁,数据不一致等问题。

这样使用JavaScript的单线程就避免了上述问题,单线程是指主线程是单线程的,所有阻塞的部分交给一个线程池处理,主线程通过队列跟线程池协作。


使用Google V8引擎
       V8是一个用Google开发的开源JavaScript引擎,用于GoogleChrome,其实就是一个JavaScript解释器。V8用在Chrome浏览器中解释JavaScript代码,那么也可以用在服务器端解释代码,这就是Node.js使用JavaScript在服务器端的原因。
       V8在运行之前将JavaScript编译成了机器码,而非字节码或是解释执行它,以此提升性能。

以上总结了Node.js的几个特点,总的来说基于事件,非阻塞,占用内存少等特点,适合处理高并发大数据量请求的请求。下面将简单介绍一下Node.js的使用。


安装

首先下载Windows版的Node.js,下载完成之后可以直接安装,地址为:

https://nodejs.org/download/

下载完成之后程序会自动配置path,可以打开命令提示符窗口(dos窗口),输入“node”,如果没错出现错误,表示安装成功。

第一个小程序helloworld
在dos窗口所在的目录,新建一个helloworld.js文件,输入:
       console.log(“Hello World”);
保存该文件,通过下面语句(node命令)来执行:

  node helloworld.js

正常的话,就会在dos窗口输出“Hello World”,这样我们就完成了第一个小例子,下面会说一个稍微复杂一点的。


第二个小程序:处理请求
这个小程序的目标:当用户在地址栏输入:http://localhost:8888的时候,页面显示“HelloWorld”。
在当前目录建立server.js文件,写入如下代码:

var http = require("http");
   http.createServer(function(request,response) {
        response.writeHead(200,{"Content-Type": "text/plain"});
        response.write("HelloWorld");
        response.end();
  }).listen(8888);

这样就完成了一个可以工作的HTTP服务器,是不是很简单?当然我们得让它运行起来,在dos窗口输入:

        node server.js

接下来打开浏览器访问http://localhost:8888/,如果正常的话,页面上就会显示“HelloWorld”。

结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值