nodejs项目中常用的npm包及分类
🧱 一、通用工具类
包名 | 简介 | 用途 |
---|---|---|
lodash | 提供一致、简洁的 JavaScript 工具函数 | 数据处理、对象操作等 |
moment / dayjs | 处理日期和时间(dayjs 更轻量) | 格式化、解析、计算时间 |
axios | 基于 Promise 的 HTTP 客户端 | 网络请求 |
uuid | 生成唯一标识符 | 创建随机 ID |
dotenv | 加载 .env 文件中的环境变量 | 管理配置 |
🕸 二、Web 应用开发
包名 | 简介 | 用途 |
---|---|---|
express | 最流行的 Web 框架 | 构建 API / Web 服务 |
koa | 更现代、轻量的 Web 框架(中间件驱动) | 构建 Web 应用 |
cors | 设置跨域资源共享(CORS)头 | 处理跨域请求 |
helmet | 设置 HTTP 安全头 | Web 安全增强 |
body-parser | 解析 HTTP 请求体 | 接收表单/JSON |
🔐 三、安全与认证
包名 | 简介 | 用途 |
---|---|---|
bcrypt / bcryptjs | 哈希加密密码 | 用户密码加密 |
jsonwebtoken (jwt ) | JSON Web Token | 用户认证 |
express-rate-limit | 请求速率限制中间件 | 防止暴力攻击 |
🔄 四、数据库相关
包名 | 简介 | 用途 |
---|---|---|
mongoose | MongoDB 的 ODM(对象文档映射)工具 | 操作 MongoDB |
sequelize | 支持多种 SQL 数据库的 ORM | 操作 MySQL/PostgreSQL |
sqlite3 | SQLite 数据库驱动 | 本地嵌入式数据库 |
redis | Redis 客户端 | 缓存、会话、消息队列等 |
📦 五、打包构建 / 工具链
包名 | 简介 | 用途 |
---|---|---|
webpack | 模块打包器 | 前端构建工具 |
babel | JavaScript 编译器 | 支持 ES6+ 特性 |
ts-node | TypeScript 脚本运行器 | 执行 .ts 文件 |
nodemon | 监听文件改动自动重启应用 | 开发辅助工具 |
eslint | JavaScript/TypeScript 代码风格检查 | 保持代码质量 |
🧪 六、测试相关
包名 | 简介 | 用途 |
---|---|---|
jest | Facebook 出品的测试框架 | 单元测试 |
mocha + chai | 流行的测试框架 + 断言库 | 测试驱动开发 |
supertest | HTTP 请求测试库 | 测试 Express 等 API |
📁 七、文件与流处理
包名 | 简介 | 用途 |
---|---|---|
multer | 文件上传中间件 | 处理上传表单 |
formidable | 更强大的上传库 | 上传文件、解析表单 |
fs-extra | fs 的增强版 | 支持递归复制、删除等 |
📚 八、日志 / 监控
包名 | 简介 | 用途 |
---|---|---|
winston | 高度可配置的日志记录工具 | 日志输出 |
pino | 快速 JSON 日志库 | 性能更高的日志工具 |
morgan | Express 中间件 | 请求日志记录 |
🌐 九、其他热门类库
包名 | 简介 | 用途 |
---|---|---|
socket.io | 实时双向通信框架 | 实现 WebSocket 聊天 |
chalk | 终端输出加颜色 | 命令行美化 |
inquirer | CLI 交互式命令 | 创建 CLI 工具 |
commander | 命令行参数解析 | CLI 参数管理 |
puppeteer | Headless Chrome 控制库 | 网页截图、自动化爬虫 |