您好,欢迎访问一九零五行业门户网

node.js有哪些特性

nodejs有三个特性:1、服务器端;nodejs运行在服务器端,为javascript提供运行环境的环境服务。2、非阻塞异步;nodejs采用了非阻塞型i/o机制,在做i/o操作的时候不会造成任何的阻塞。3、事件驱动;当进来一个新的请求的时,请求将会被压入一个事件队列中,然后通过一个循环来检测队列中的事件状态变化,如果检测到有状态变化的事件,那么就执行该事件对应的处理代码。
本教程操作环境:windows7系统、nodejs16版,dell g3电脑。
什么是 node.js?
node.js 是一个开源与跨平台的 javascript 运行时环境,或者说,是一个平台。
在浏览器外运行 v8 javascript 引擎(google chrome 的内核),利用事件驱动、非阻塞和异步输入输出模型等技术提高性能。
可以理解为 node.js 就是一个服务器端的、非阻塞式i/o的、事件驱动的 javascript运行环境。
就如上述描述,不难得出,node.js 有三个特性 : 服务器端、 非阻塞式i/o、事件驱动。接下来,我们就三个特性进行剖析:
① 服务器端:字面意思,node.js 运行在服务器端,为 javascript提供运行环境的环境服务。
② 非阻塞异步: node.js 采用了非阻塞型 i/o 机制,在做 i/o 操作的时候不会造成任何的阻塞,当完成之后,以时间的形式通知执行操作。
例如在执行了访问数据库的代码之后,将立即转而执行其后面的代码,把数据库返回结果的处理代码放在回调函数中,从而提高了程序的执行效率。
③ 事件驱动: 事件驱动就是当进来一个新的请求的时,请求将会被压入一个事件队列中,然后通过一个循环来检测队列中的事件状态变化,如果检测到有状态变化的事件,那么就执行该事件对应的处理代码,一般都是回调函数
比如读取一个文件,文件读取完毕后,就会触发对应的状态,然后通过对应的回调函数来进行处理
知识拓展:
node.js 是 一个单线程服务(js本来无论在浏览器端还是服务端都是单线程)。同时,拥有世界最大的开源库生态系统: npm。
node.js 有哪些优缺点?
> 优点
处理高并发场景性能更佳
适合i/o密集型应用,值的是应用在运行极限时,cpu占用率仍然比较低,大部分时间是在做 i/o硬盘内存读写操作
> 缺点
因为 node.js 是单线程,带来的缺点有:
不适合cpu密集型应用
只支持单核cpu,不能充分利用cpu
可靠性低,一旦代码某个环节崩溃,整个系统都崩溃。
node.js 能做什么?
提供数据给浏览器展示保存用户提交过来的数据数据统计与分析
node.js 的 模块系统
在 node.js 中没有全局作用域的概念;
在 node.js 中,只能通过 require 方法来加载执行多个 javascript 脚本文件;
require 加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题;
模块完全是封闭的
外部无法访问内部
内部也无法访问外部
模块作用域虽然可以带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题。
但是某些情况下,模块与模块是需要进行通信的。在每个模块中,都提供了一个对象:‘exports’,该对象默认是一个空对象。
在使用过程中,需要被外部访问使用的成员手动的挂载到 ’exports‘ 接口对象中,
然后谁来 ’require‘ 这个模块,谁就可以得到模块内部的 exports 接口对象。
核心模块
核心模块是由 node 提供的一个个的具名的模块,它们都有自己特殊的名称标识,例如:
fs:文件操作模块
http:网络服务构建模块
os:操作系统信息模块
path:路径处理模块
所有核心模块在使用的时候都必须手动的先使用 require 方法来加载,然后才可以使用,例如: ‘var fs = require('fs')’
node.js 应用场景
借助nodejs的特点和弊端,其应用场景分类如下:
善于i/o,不善于计算。因为nodejs是一个单线程,如果计算(同步)太多,则会阻塞这个线程;
大量并发的i/o,应用程序内部并不需要进行非常复杂的处理;
与 websocket 配合,开发长连接的实时交互应用程序,即:实时通讯 ;
具体场景可以表现为如下:
① 用户表单收集系统、后台管理系统、实时交互系统、考试系统、联网软件、高并发量的web应用程序;
② 基于web、canvas等多人联网游戏;
③ 基于 web 的多人实时聊天客户端、聊天室、图文直播;
④ 单页面浏览器应用程序;
⑤操作数据库、为前端和移动端提供基于json的api;
其实,node.js 能实现几乎一切的应用,只不过需要考虑的是 当前场景是否适合使用 node.js, 使用 node.js 是否 ” 最优解 “,需要考虑 性能问题。
更多node相关知识,请访问:nodejs 教程!
以上就是node.js有哪些特性的详细内容。
其它类似信息

推荐信息