码迷,mamicode.com
首页 > 其他好文 > 详细

node简介

时间:2018-01-18 23:11:38      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:请求   有一个   原因   运行   功能   rip   事件驱动   简介   资源   

这两天正好休息下,吧之前学的东西整理了一下,

关于node.js的话,简单的来说,是一种服务端的js编程,如果你是最初来学node的话,看到node.js你会以为是一个js文件,会觉得就像jquery.js一样,直接在html页面引用js文件就可以了,然而事实不是这样,node一种服务端的一个平台,是一种服务端的环境,node采用的编程语言是js,所以学会node,前端基本就可以做js全栈了,node依托的是谷歌的v8引擎,所以我们可以简单的理解,以前js在浏览器中解释执行,现在node吧浏览器的v8引擎搬到服务端,这样js的代码就可以在服务端解释执行了。

关于node的诞生之初,就是为了解决高并发的问题,所以node天生就具有高并发的能力。现在node的社区不断完善,node的功能也越来越强大,性能也会越来越好。

那么,node是如何实现高并发的,这里我谈下我自己简单的解释,node的官网说node     Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 
Node.js 的包管理器 npm,是全球最大的开源库生态系统。

从官网看到,node的特点:时间驱动,非阻塞I/O 同时node是基于单线程的 ,我自己是这么理解的因为node是单线程,那么要实现并发的话,就必须要实现非阻塞I/O,因而又需要事件驱动,node中有个事件环机制。我自己最初是学.net的,做过一些asp.net的项目,在.net中,每次有一个新的请求进来,服务器就要新开一个线程,每个线程分别负责相应的客户端的请求。但是node却反其道,node对所有请求都只有一个线程,每次有一个请求,就往后面放,但是如果按照传统思想来说,这样就会造成阻塞,所以node中就有一个事件驱动,如果某一个请求有I/O请求的时候,这个时候I/O是异步的,cpu可以继续去执行别的代码,等到I/O完成后,再去执行相应的回调函数,这样基本就可以保证在单线程的情况下不会阻塞,这样做的优点是可以实现高并发的同时充分利用cpu资源,极大的减少了服务器的内存的消耗,

但是这也是node的缺点所在,因为是单线程的,所以其中如果有某个请求崩溃了,那么所有请求都会受到影响,所以在node中,虽然看着对前端工程师非常好,但是这对程序的质量会有非常大的要求,因为有可能会因为你的程序中有一个异常没处理,某个用户不按常理操作的话,将会导致所有用户的访问都奔溃,所以node相对来说还是不太稳定的,我想这也是node的应用有局限的原因,像一些比较复杂的业务或者大公司的话,应该都还是不会用node做整站的,用node的还是小公司多点,或者用node搭建前端自动化环境

 

node简介

标签:请求   有一个   原因   运行   功能   rip   事件驱动   简介   资源   

原文地址:https://www.cnblogs.com/fandaxia/p/8313277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!