nodejs什么意思
时间:2021-09-22
来源:互联网
标签:
今天PHP爱好者给大家带来nodejs什么意思的介绍,nodejs是一个基于Chrome V8引擎的JavaScript运行环境,一个让JavaScript运行在服务端的开发平台,让脚本语言JavaScript能作为服务器语言。node的优点:超强的高并发能力、使用JavaScript语法等。希望对大家有所帮助。
本教程操作环境:windows7系统、nodejs 14.15.4版,DELL G3电脑。
Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型, 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。
Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。
Node.js使用Google V8 JavaScript引擎,因为:
V8是基于BSD许可证的开源软件
V8速度非常快
V8专注于网络功能,在HTTP、DNS、TCP等方面更加成熟
Node.js的优势?为什么脚本语言JavaScript能作为服务器语言?
优点 1 Node.js有超强的高并发能力
Node.js的首发目标,是提供一种简单的,用语创建高性能服务器及在该服务器中运行各种应用程序的开发工具。
相对于Java,PHP或者.net 等经典服务器端语言中,Node.js正像一个年轻力胜的小伙子,Java语言会为每一个客户端创建一个新的线程,而每一个客户端连接创建一个线程,需要耗费2MB的内存。也就是说。理论上一个8GB的服务器可以同时连接用户数为4000个左右,要存在高并发支持更多的用户,必须要额外增加服务器。
Node.js不为每个客户连接创建一个新的线程,而仅仅使用一个线程。
这就是Node基于单线程(只有一个主线程去接请求,给响应)
那这不是更慢吗?事实上,并不是这样。
Node.js当接收到一个用户连接,就会触发一个内部事件。通过事先定义好的函数,达到响应用户的行为。Node.js主线程并不关心程序要走什么流程,实际上,有另外的工作线程去帮Node主线程去存取文件,读数据库,当工作线程读取到文件数据,或数据库里面的数据,就会把回调函数返回给Node主线程去执行,例如 把找到的数据传回客户端,关闭连接一些操作。(这就是Node非阻塞I/O,基于事件驱动)。
下面附上我画的一张图(如有不恰当之处请见谅哈)
这时候我们脑袋里面应该有个雏形,就是——Node.js主线程一直在接收请求和响应请求这个活里面倒腾,这样它就可以不停地接收多个客户端发过来的请求,它不用傻傻去等待IO操作,IO工作线程找到了数据,就会触发事件回调函数告诉主线程数据已经拿到了,这时候主线就执行回调函数,把数据返回给客户端。
理论上,一个8G内存的服务器,可以同时容纳3到4万用户的连接。
这就是Node的闪光之处(单线程,非阻塞IO,事件驱动)
优点 2 Node用的就是JavaScript的语法
Node.JS 基于 javaScript 的 V8引擎,也就是说只要会JS的语法,就能用于后端开发,但是Node官方推荐用ECMA Script6(ES6)语法 。
Node打破了过去JavaScript只能在浏览器运行的局面,让前后端编程环境统一,这样就大大降低了开发成本。(这一点对前端开发人员非常友好,JS能做的东西越来越多,前端发展就越来越快)
优点 3 Node.JS 出现促成前端工程化思想
前端最近几年发展迅速,Node.js起到不可替代的作用。
Node.js不仅仅是运行环境,也是一门脱胎换骨全新的JavaScript语言,它容纳了JS语法基础,还加入一些内部模块
如:
http用来处理请求响应的模块
fs 用来读取文件的模块
url 用来解析请求数据等等
const http = require('http')
Node.js还集成了 Npm 包管理工具,让我们可以很方便的通过命令行就能下载我们项目依赖的包
如:
npm install jquery
npm install -g webpack
npm install -g create-react-app 等等
同样,只要在项目里面进行引入就能使用
const Jquery = require('jquery');
Node 还支持 自定义模块语法 ↓↓
const app =()=>{
//模块代码
}
module.exports = app;
const app = require('module/app.js'); //引入自定义模块
Node.js 在某种层面上影响着前端开发的模式。让前端工程模块化,开发迅速,降低代码耦合度,可维护性大大增强。
Node.js适合做什么?
下面列举几个Node.js应用场景
以上就是nodejs什么意思的详细内容,更多请关注php爱好者其它相关文章!
-
什么是GlassFish GlassFish安装和配置教程 时间:2025-09-24
-
d3d9.dll是什么文件?d3d9.dll丢失怎么办? 时间:2025-09-24
-
Win11中Hypervisor Error蓝屏的原因及解决方法 时间:2025-09-24
-
Hypervisor虚拟化技术详解 时间:2025-09-24
-
Dubbo和Spring Cloud区别(性能、特点和优劣势) 时间:2025-09-24
-
什么是Dubbo Dubbo是干嘛的 Dubbo原理和机制详细解析 时间:2025-09-24
今日更新
-
硬盘分区无法访问?教你快速修复打不开的硬盘分区方法
阅读:18
-
硬盘分区格式化详细教程 手把手教你安全高效管理磁盘空间
阅读:18
-
硬盘低格是什么意思?如何正确操作及注意事项详解
阅读:18
-
2024最新硬盘对拷工具下载 一键快速克隆硬盘数据
阅读:18
-
想知道桃白白是什么梗梗姐?揭秘网络热梗背后的搞笑真相,快来看看吧!
阅读:18
-
2023年热门硬盘型号全解析:性能对比与选购指南
阅读:18
-
电脑硬盘灯常亮怎么回事?快速排查原因与解决方法
阅读:18
-
电脑硬盘不显示怎么办?快速修复方法及原因解析
阅读:18
-
硬盘磁头坏了怎么修复?数据恢复专业方法及维修费用解析
阅读:18
-
电脑重装必备!硬盘版XP系统下载安装教程 一键快速装机不求人
阅读:18