源本科技 | 码上会

Node.js 概述

2026/04/09
6
0

引言

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,专为构建高性能、可扩展的网络应用而设计。其核心特性是采用事件驱动非阻塞 I/O 模型,能够轻松处理高并发连接。 Node.js 打破了 JavaScript 只能运行在浏览器的限制,让 JavaScript 具备了服务器端开发的能力。它被广泛应用于实时通信、聊天应用、在线游戏等场景,凭借轻量、高效的特性,成为前端全栈开发的核心工具。

回顾已知内容

已掌握的知识

  • HTML 5:用于定义和组织网页的结构,支持多媒体元素和语义化标签,优化页面结构与用户体验

  • CSS 3:用于页面样式设计,包含布局、颜色、字体、动画等能力,让网页外观更美观、交互更灵活

  • JavaScript:用于实现网页动态交互与逻辑行为,支持用户与页面实时互动,是前端核心开发语言

浏览器中的 JS

  • DOM:文档对象模型,以树形结构描述 HTML/XML 文档,提供 API 允许开发者动态操作页面内容、结构和样式

  • BOM:浏览器对象模型,提供窗口、历史记录、导航等对象,用于实现 JavaScript 与浏览器的交互

  • AJAX:异步 JavaScript 和 XML,实现页面无刷新的数据请求,完成前端与服务器的异步通信

浏览器如何执行 JS

浏览器执行 JavaScript 的完整流程:

  1. HTML 解析器加载并解析页面,遇到 <script> 标签时,请求并下载 JS 文件

  2. 浏览器内置的 JavaScript 引擎(如 V8)解析、编译代码,生成可执行程序

  3. 借助事件循环与回调队列处理异步操作,保障代码非阻塞执行

  4. JavaScript 调用 DOM/BOM API 操作页面,最终由渲染引擎更新页面展示

  • 不同浏览器使用不同的 JavaScript 解析引擎,版本更新会带来引擎优化

  • Chrome 浏览器的 V8 引擎是目前性能最优的 JavaScript 引擎

浏览器

解析引擎

Chrome

V8

Firefox

SpiderMonkey

Safari

JavaScriptCore

Edge

V8 (旧版为 Chakra)

Opera

V8

Internet Explorer

Chakra(已弃用)

JS 如何操作 DOM 和 BOM

JavaScript 本身不具备操作页面和浏览器的能力,浏览器提供了专属的内置 API,让 JS 可以调用 DOM、BOM 接口。 通过这些接口,JavaScript 可以修改文档结构、控制浏览器行为,实现动态交互的网页应用。

浏览器中的 JS 运行环境

运行环境:代码能够正常执行所需的依赖、引擎、接口集合。 浏览器中的 JavaScript 运行环境包含两部分:

  • V8 引擎:核心模块,负责解析和执行 JavaScript 代码

  • 内置 API:浏览器独有的接口(DOM、BOM、AJAX 等),只能在浏览器环境中调用

JavaScript 后端开发

JavaScript 实现后端开发,必须依赖 Node.js 运行环境,这是前端全栈开发的基础。

优点

  • 统一技术栈:前后端统一使用 JavaScript,降低团队学习成本,支持代码复用

  • 异步高性能:基于事件驱动、非阻塞 I/O 模型,高效处理高并发请求

  • 完善生态:npm 拥有全球最大的包管理生态,海量第三方模块加速开发

  • 轻量高效:启动速度快、资源占用低,适合微服务、快速原型开发

缺点

  • 单线程限制:不擅长处理 CPU 密集型任务,大量计算会阻塞事件循环

  • 生态成熟度:对比 Java、Python 等传统后端语言,部分领域工具链不够完善

  • 回调地狱:早期异步代码嵌套过深,可读性差(可通过 Promise/async 解决)

主流后端语言

Node.js 的核心优势场景:I/O 密集型应用(API 服务、实时通信、文件处理等)

  • Node.js vs Python(Django/Flask):Python 擅长科学计算、数据分析

  • Node.js vs Java(Spring Boot):Java 适合大型企业级、高稳定需求的系统

  • Node.js vs Ruby(Ruby on Rails):Rails 主打快速开发、约定大于配置

  • Node.js vs PHP:PHP 入门简单,在传统 Web 项目、虚拟主机场景使用广泛

Node.js 简介

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,专为构建高性能、可扩展的网络应用而设计。其独特之处在于采用了事件驱动和非阻塞 I/O 模型,使其能够轻松处理大量并发连接。Node.js 让 JavaScript 不仅可以在客户端运行,还能够在服务器端执行任务。广泛应用于实时应用程序的开发,例如聊天应用和在线游戏,Node.js 因其轻量且高效的特性而备受欢迎。

https://nodejs.org/en

运行环境

  • 浏览器:JavaScript 的前端运行环境,提供 DOM/BOM API

  • Node.js:JavaScript 的后端运行环境,提供文件、网络、系统等 API

  • 核心区别:Node.js 中无法调用 DOM、BOM 等浏览器专属 API

下图为 Node.js 运行环境

主要作用

Node.js 提供了底层的核心 API,基于这些能力,衍生出大量成熟的框架和工具:

https://www.expressjs.com.cn/https://www.electronjs.org/http://restify.com/