首页 web前端 前端问答 node.js有哪些特性

node.js有哪些特性

Jul 18, 2022 pm 05:56 PM
nodejs node

nodejs有三个特性:1、服务器端;Nodejs运行在服务器端,为Javascript提供运行环境的环境服务。2、非阻塞异步;Nodejs采用了非阻塞型I/O机制,在做I/O操作的时候不会造成任何的阻塞。3、事件驱动;当进来一个新的请求的时,请求将会被压入一个事件队列中,然后通过一个循环来检测队列中的事件状态变化,如果检测到有状态变化的事件,那么就执行该事件对应的处理代码。

node.js有哪些特性

本教程操作环境: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

  • 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃。

1.png

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有哪些特性的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

nodejs是后端框架吗 nodejs是后端框架吗 Apr 21, 2024 am 05:09 AM

Node.js 可作为后端框架使用,因为它提供高性能、可扩展性、跨平台支持、丰富的生态系统和易于开发等功能。

nodejs怎么连接mysql数据库 nodejs怎么连接mysql数据库 Apr 21, 2024 am 06:13 AM

要连接 MySQL 数据库,需要遵循以下步骤:安装 mysql2 驱动程序。使用 mysql2.createConnection() 创建连接对象,其中包含主机地址、端口、用户名、密码和数据库名称。使用 connection.query() 执行查询。最后使用 connection.end() 结束连接。

nodejs安装目录里的npm与npm.cmd文件有什么区别 nodejs安装目录里的npm与npm.cmd文件有什么区别 Apr 21, 2024 am 05:18 AM

Node.js 安装目录中有两个与 npm 相关的文件:npm 和 npm.cmd,区别如下:扩展名不同:npm 是可执行文件,npm.cmd 是命令窗口快捷方式。Windows 用户:npm.cmd 可以在命令提示符下使用,npm 只能从命令行运行。兼容性:npm.cmd 特定于 Windows 系统,npm 跨平台可用。使用建议:Windows 用户使用 npm.cmd,其他操作系统使用 npm。

nodejs中的全局变量有哪些 nodejs中的全局变量有哪些 Apr 21, 2024 am 04:54 AM

Node.js 中存在以下全局变量:全局对象:global核心模块:process、console、require运行时环境变量:__dirname、__filename、__line、__column常量:undefined、null、NaN、Infinity、-Infinity

nodejs和java的差别大吗 nodejs和java的差别大吗 Apr 21, 2024 am 06:12 AM

Node.js 和 Java 的主要差异在于设计和特性:事件驱动与线程驱动:Node.js 基于事件驱动,Java 基于线程驱动。单线程与多线程:Node.js 使用单线程事件循环,Java 使用多线程架构。运行时环境:Node.js 在 V8 JavaScript 引擎上运行,而 Java 在 JVM 上运行。语法:Node.js 使用 JavaScript 语法,而 Java 使用 Java 语法。用途:Node.js 适用于 I/O 密集型任务,而 Java 适用于大型企业应用程序。

nodejs是后端开发语言吗 nodejs是后端开发语言吗 Apr 21, 2024 am 05:09 AM

是的,Node.js 是一种后端开发语言。它用于后端开发,包括处理服务器端业务逻辑、管理数据库连接和提供 API。

Pi Node教学:什么是Pi节点?如何安装和设定Pi Node? Pi Node教学:什么是Pi节点?如何安装和设定Pi Node? Mar 05, 2025 pm 05:57 PM

PiNetwork节点详解及安装指南本文将详细介绍PiNetwork生态系统中的关键角色——Pi节点,并提供安装和配置的完整步骤。Pi节点在PiNetwork区块链测试网推出后,成为众多先锋积极参与测试的重要环节,为即将到来的主网发布做准备。如果您还不了解PiNetwork,请参考Pi币是什么?上市价格多少?Pi用途、挖矿及安全性分析。什么是PiNetwork?PiNetwork项目始于2019年,拥有其专属加密货币Pi币。该项目旨在创建一个人人可参与

nodejs项目怎么部署到服务器 nodejs项目怎么部署到服务器 Apr 21, 2024 am 04:40 AM

Node.js 项目的服务器部署步骤:准备部署环境:获取服务器访问权限、安装 Node.js、设置 Git 存储库。构建应用程序:使用 npm run build 生成可部署代码和依赖项。上传代码到服务器:通过 Git 或文件传输协议。安装依赖项:SSH 登录服务器并使用 npm install 安装应用程序依赖项。启动应用程序:使用 node index.js 等命令启动应用程序,或使用 pm2 等进程管理器。配置反向代理(可选):使用 Nginx 或 Apache 等反向代理路由流量到应用程

See all articles