Node.js 是一个基于 Chrome V8 JavaScript 引擎 构建的开源、跨平台的 JavaScript 运行时环境,主要用于服务器端编程。它允许开发者使用 JavaScript 编写高性能的后端服务,突破了 JavaScript 仅在浏览器中运行的限制。
npm(Node Package Manager),通常需要先安装 Node.js,因为 npm 是 Node.js 的默认包管理工具。
以下是 详细介绍: Node.js官网:https://nodejs.org/zh-cn
一、核心特点
-
非阻塞 I/O 与事件驱动
-
Node.js 采用单线程事件循环模型,通过非阻塞 I/O 操作处理并发请求。
-
适合高并发、I/O 密集型应用(如 Web 服务器、API 服务),避免传统多线程模型的资源竞争问题。
-
-
轻量高效
-
基于 V8 引擎编译执行 JavaScript,性能接近底层语言(如 C++)。
-
单线程模型减少内存消耗,适合微服务和云原生场景。
-
-
npm 生态系统
-
内置 npm(Node Package Manager),是全球最大的开源库仓库,提供超过 150 万个可复用模块(截至 2023 年)。
-
-
跨平台支持
-
支持 Windows、Linux、macOS 等系统,轻松部署到各类环境。
-
二、架构与核心模块
-
底层依赖
-
V8 引擎:将 JavaScript 编译为机器码。
-
libuv:提供事件循环、异步 I/O 和线程池功能,支持跨平台操作。
-
-
关键模块
-
HTTP/HTTPS:快速构建 Web 服务器。
-
File System (fs):异步/同步文件操作。
-
Stream:处理数据流(如大文件读写)。
-
Events:事件驱动编程模型。
-
Cluster:利用多核 CPU 实现进程间负载均衡。
-
三、典型应用场景
-
Web 服务器/API 服务
-
配合框架(如 Express、Koa、Fastify)快速构建 RESTful API。
-
-
实时应用
-
聊天室、在线游戏等依赖 WebSocket 的场景(使用 Socket.IO 库)。
-
-
微服务与 Serverless
-
轻量级特性适合容器化部署(如 Docker)和无服务器架构(AWS Lambda)。
-
-
工具开发
-
构建 CLI 工具、构建脚本(Webpack、Babel)、爬虫等。
-
-
中间层代理
-
处理请求转发、数据聚合或服务端渲染(SSR)。
-
四、优势与局限性
优势:
-
高并发能力:单线程事件循环可处理数千并发连接。
-
开发效率高:前后端语言统一(JavaScript/TypeScript),降低学习成本。
-
活跃社区:丰富的第三方库(如 Express、NestJS)和工具链支持。
局限性:
-
CPU 密集型任务性能差:长时间计算会阻塞事件循环。
-
回调地狱:早期代码嵌套问题(可通过 Promise、async/await 解决)。
-
单线程风险:未捕获的异常可能导致进程崩溃(需结合 PM2 等进程管理工具)。
五、代码示例
javascript
复制
// 最简单的 HTTP 服务器 const http = require('http'); const server = http.createServer((req, res) => {res.end('Hello Node.js!'); }); server.listen(3000, () => console.log('Server running on port 3000'));// 异步文件读取(非阻塞) const fs = require('fs'); fs.readFile('file.txt', 'utf8', (err, data) => {if (err) throw err;console.log(data); });
六、工具与框架
-
Web 框架:Express(轻量)、NestJS(企业级)、Fastify(高性能)。
-
数据库驱动:Mongoose(MongoDB)、Sequelize(SQL)。
-
进程管理:PM2(负载均衡、日志管理)。
-
测试工具:Jest、Mocha。
-
调试工具:Node Inspector、Chrome DevTools。
七、版本与生态
-
LTS(长期支持版本):稳定版本,推荐生产环境使用(如 Node.js 18.x)。
-
ES 模块支持:从 Node.js 13.2 开始默认支持
import/export
语法,逐步替代 CommonJS。
八、学习资源
-
官方文档:nodejs.org
-
书籍推荐:《Node.js 设计模式》《深入浅出 Node.js》
-
在线课程:FreeCodeCamp、Udemy 的 Node.js 全栈教程。
Node.js 凭借其高性能和灵活生态,已成为现代全栈开发的核心技术之一。适合需要快速迭代、高并发的项目,但在 CPU 密集型场景下需结合其他语言(如 Go、Rust)优化。
1、node版本查询
node -v
2、npm版本查询
npm -v
3、npm镜像地址查询
npm config get registry
4、更改镜像地址
npm config set registry=https://registry.npmmirror.com
淘宝镜像地址:http://registry.npm.taobao.org
国内镜像地址:https://registry.npmmirror.com