node.js、npm相关知识

发布于:2025-04-02 ⋅ 阅读:(26) ⋅ 点赞:(0)

Node.js 是一个基于 Chrome V8 JavaScript 引擎 构建的开源、跨平台的 JavaScript 运行时环境,主要用于服务器端编程。它允许开发者使用 JavaScript 编写高性能的后端服务,突破了 JavaScript 仅在浏览器中运行的限制。

npm(Node Package Manager),通常需要先安装 Node.js,因为 npm 是 Node.js 的默认包管理工具。


以下是 详细介绍: Node.js官网:https://nodejs.org/zh-cn

一、核心特点

  1. 非阻塞 I/O 与事件驱动

    • Node.js 采用单线程事件循环模型,通过非阻塞 I/O 操作处理并发请求。

    • 适合高并发、I/O 密集型应用(如 Web 服务器、API 服务),避免传统多线程模型的资源竞争问题。

  2. 轻量高效

    • 基于 V8 引擎编译执行 JavaScript,性能接近底层语言(如 C++)。

    • 单线程模型减少内存消耗,适合微服务和云原生场景。

  3. npm 生态系统

    • 内置 npm(Node Package Manager),是全球最大的开源库仓库,提供超过 150 万个可复用模块(截至 2023 年)。

  4. 跨平台支持

    • 支持 Windows、Linux、macOS 等系统,轻松部署到各类环境。


二、架构与核心模块

  1. 底层依赖

    • V8 引擎:将 JavaScript 编译为机器码。

    • libuv:提供事件循环、异步 I/O 和线程池功能,支持跨平台操作。

  2. 关键模块

    • HTTP/HTTPS:快速构建 Web 服务器。

    • File System (fs):异步/同步文件操作。

    • Stream:处理数据流(如大文件读写)。

    • Events:事件驱动编程模型。

    • Cluster:利用多核 CPU 实现进程间负载均衡。


三、典型应用场景

  1. Web 服务器/API 服务

    • 配合框架(如 Express、Koa、Fastify)快速构建 RESTful API。

  2. 实时应用

    • 聊天室、在线游戏等依赖 WebSocket 的场景(使用 Socket.IO 库)。

  3. 微服务与 Serverless

    • 轻量级特性适合容器化部署(如 Docker)和无服务器架构(AWS Lambda)。

  4. 工具开发

    • 构建 CLI 工具、构建脚本(Webpack、Babel)、爬虫等。

  5. 中间层代理

    • 处理请求转发、数据聚合或服务端渲染(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);
});

六、工具与框架

  1. Web 框架:Express(轻量)、NestJS(企业级)、Fastify(高性能)。

  2. 数据库驱动:Mongoose(MongoDB)、Sequelize(SQL)。

  3. 进程管理:PM2(负载均衡、日志管理)。

  4. 测试工具:Jest、Mocha。

  5. 调试工具: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