小编给大家分享一下Node . JS有哪些优势,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
作为一名JS的粉忠实粉丝,虽然JS并没有JAVA的生态圈这么大,但是JavaScript从客户端脚本程序跻身服务器端,这让我们要重视一下它,JavaScript它在慢慢崛起,我们要换一种眼光去学习它。
<强> Node . JS是什么? 强>
<强> Nodejs 强> <强>本质上是一个JavaScript的运行环境。强>
基于谷歌的V8引擎,实际上,是从Chrome上抠下的V8引擎并加以封装的一个执行环境。
我们去官网下载包,傻瓜式安装。
节点下载官网:https://nodejs.org/en/download/
在命令行输入节点就能运行JavaScript脚本。
<强>节点。js的优势?为什么脚本语言JavaScript能作为服务器语言? 强>
<>强优点1,,Node . js有超强的高并发能力强>
Node . js的首发目标,是提供一种简单的,用语创建高性能服务器及在该服务器中运行各种应用程序的开发工具。
相对于Java、PHP或者。net等经典服务器端语言中,Node . js正像一个年轻力胜的小伙子,爪哇语言会为每一个客户端创建一个新的线程,而每一个客户端连接创建一个线程,需要耗费2 mb的内存。也就是说。理论上一个8 gb的服务器可以同时连接用户数为4000个左右,要存在高并发支持更多的用户,必须要额外增加服务器。
<强> Node . js不为每个客户连接创建一个新的线程,而仅仅使用一个线程。强>
这就是节点基于单线程(只有一个主线程去接请求,给响应)
那这不是更慢吗?事实上,并不是这样。
Node . js当接收到一个用户连接,就会触发一个内部事件。通过事先定义好的函数,达到响应用户的行为.Node。js主线程并不关心程序要走什么流程,实际上,有另外的工作线程去帮节点主线程去存取文件,读数据库,当工作线程读取到文件数据,或数据库里面的数据,就会把回调函数返回给节点主线程去执行,例如把找到的数据传回客户端,关闭连接一些操作。(这就是节点非阻塞I/O,基于事件驱动)。
<强>下面附上我画的一张图(如有不恰当之处请见谅哈)强>
这时候我们脑袋里面应该有个雏形,就是——节点。js主线程一直在接收请求和响应请求这个活里面倒腾,这样它就可以不停地接收多个客户端发过来的请求,它不用傻傻去等待IO操作,IO工作线程找到了数据,就会触发事件回调函数告诉主线程数据已经拿到了,这时候主线就执行回调函数,把数据返回给客户端。
理论上,一个8 g内存的服务器,可以同时容纳3到4万用户的连接。
这就是节点的闪光之处(单线程,非阻塞IO,事件驱动)
<>强优点,2,节点用的就是JavaScript的语法强>
<强>节点。JS >强基于javaScript的V8引擎,也就是说只要会JS的语法,就能用于后端开发,但是节点官方推荐用ECMA Script6 (ES6)语法。
节点打破了过去javaScript只能在浏览器运行的局面,让前后端编程环境统一,这样就大大降低了开发成本。(这一点对前端开发人员非常友好,JS能做的东西越来越多,前端发展就越来越快)
<>强优点,3,节点。JS出现促成前端工程化思想强>
前端最近几年发展迅速,Node . JS起到不可替代的作用。
节点。js不仅仅是运行环境,也是一门脱胎换骨全新JavaScript的语言,它容纳了js语法基础,还加入一些内部模块
如:
http用来处理请求响应的模块
fs,用来读取文件的模块
网址,用来解析请求数据等等
const http =,需要(& # 39;http # 39;)
节点。js还集成了Npm,包管理工具,让我们可以很方便的通过命令行就能下载我们项目依赖的包
如:
Npm安装jquery
Npm安装- g webpack
Npm安装,g create-react-app,,等等
同样,只要在项目里面进行引入就能使用
,const , Jquery =,要求(& # 39;jquery # 39;);
<强>,,,,,节点还支持自定义模块语法,↓↓强>
const app =()=祝辞{ ,,,,//模块代码 ,,,, }=module.exports 应用;
const app =,要求(& # 39;模块/app.js& # 39;);,,,//引入自定义模块node . js有哪些优势