• 技术文章 >web前端 >前端问答

    node.js有哪些特性

    青灯夜游青灯夜游2022-07-18 17:56:43原创184

    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 是 一个单线程服务(JS本来无论在浏览器端还是服务端都是单线程)。同时,拥有世界最大的开源库生态系统: npm。

    Node.js 有哪些优缺点?

    > 优点

    > 缺点

    因为 Node.js 是单线程,带来的缺点有:

    1.png

    Node.js 能做什么?

    Node.js 的 模块系统

    Node.js 中没有全局作用域的概念;
    Node.js 中,只能通过 require 方法来加载执行多个 JavaScript 脚本文件;
    require 加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题;

    模块作用域虽然可以带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题。
    但是某些情况下,模块与模块是需要进行通信的。在每个模块中,都提供了一个对象:‘exports’,该对象默认是一个空对象。
    在使用过程中,需要被外部访问使用的成员手动的挂载到 ’exports‘ 接口对象中,
    然后谁来 ’require‘ 这个模块,谁就可以得到模块内部的 exports 接口对象。

    核心模块

    核心模块是由 Node 提供的一个个的具名的模块,它们都有自己特殊的名称标识,例如:

    所有核心模块在使用的时候都必须手动的先使用 require 方法来加载,然后才可以使用,例如: ‘var fs = require('fs')’

    Node.js 应用场景

    借助Nodejs的特点和弊端,其应用场景分类如下:

    具体场景可以表现为如下:

    ① 用户表单收集系统、后台管理系统、实时交互系统、考试系统、联网软件、高并发量的web应用程序;

    ② 基于web、canvas等多人联网游戏;

    ③ 基于 web 的多人实时聊天客户端、聊天室、图文直播;

    ④ 单页面浏览器应用程序;

    ⑤操作数据库、为前端和移动端提供基于json的API;

    其实,Node.js 能实现几乎一切的应用,只不过需要考虑的是 当前场景是否适合使用 Node.js, 使用 Node.js 是否 ” 最优解 “,需要考虑 性能问题。

    更多node相关知识,请访问:nodejs 教程

    以上就是node.js有哪些特性的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:node nodejs
    上一篇:node.js get与post的区别是什么 下一篇:vue中v-if和v-for哪个优先级高
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• node的全局对象是哪个• 进程和线程如何理解?Node.js中的进程和线程是怎样的?• node中的stream(流)有几种类型• node中的fs模块是什么• 深入解析NodeJS中的进程管理• 火了!新的JavaScript运行时:Bun,性能完爆Node• node.js get与post的区别是什么
    1/1

    PHP中文网