# node-mongodb-api **Repository Path**: xiaojiangk/node-mongodb-api ## Basic Information - **Project Name**: node-mongodb-api - **Description**: Node.js + MongoDB 项目架构实战模板 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-22 - **Last Updated**: 2025-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nodejs, MongoDB, Express ## README # node-mongodb-api 基于 Express + MongoDB 的图书管理 RESTful API 服务 ## 项目简介 本项目为图书管理系统后端 API,采用 Node.js、Express 框架和 MongoDB 数据库,支持用户认证、图书的增删改查等功能,适合前后端分离项目使用。 ## 主要功能 - 用户注册与登录(JWT 认证) - 图书的增删改查(CRUD) - 文件上传(如图书封面) - 参数校验与统一错误处理 - 支持 CORS 跨域、Helmet 安全防护、请求限速 ## 目录结构 ``` node-mongodb-api/ ├── app.js # 应用入口 ├── package.json # 项目依赖配置 ├── .env.development # 开发环境变量 ├── .env.production # 生产环境变量 ├── .gitignore # Git 忽略文件 ├── README.md # 项目说明文档 ├── config/ # 配置文件 │ ├── db.js # 数据库连接 │ └── index.js # 全局配置 ├── controllers/ # 控制器(业务逻辑) │ ├── bookController.js # 图书相关控制器 │ └── userController.js # 用户相关控制器 ├── middleware/ # 中间件 │ ├── auth.js # JWT 认证中间件 │ └── validate.js # 参数校验中间件 ├── models/ # Mongoose 数据模型 │ ├── Book.js # 图书模型 │ └── User.js # 用户模型 ├── routes/ # 路由模块 │ ├── bookRoutes.js # 图书路由 │ └── userRoutes.js # 用户路由 ├── services/ # 服务层 │ └── transactionService.js # 事务相关服务 ├── uploads/ # 上传文件目录 │ ├── 1753261150932.png │ └── 1753261167503.jpg └── utils/ # 工具函数 └── auth.js # 认证工具 ``` ## 环境变量配置 请在根目录下创建 `.env.development` 和 `.env.production` 文件,内容示例: `PORT=8000 MONGODB_URI=mongodb://localhost:27017/node-mongodb-api` ## 安装依赖 ```sh npm install ``` ## 启动项目 开发环境(自动重启): ```sh npm run dev ``` 生产环境: ```sh npm run start ``` ## 主要依赖 - express - mongoose - jsonwebtoken - express-jwt - joi - @escook/express-joi - multer - helmet - cors - express-rate-limit - dotenv ## API 简要说明 - 图书相关接口:/api/books - POST /api/books 新增书籍 - GET /api/books 获取书籍列表(支持分页) - GET /api/books/:id 获取单本书籍 - PUT /api/books/:id 更新书籍 - DELETE /api/books/:id 删除书籍 - 具体参数和返回格式请参考 controllers/bookController.js ## 其他说明 - 上传文件默认存储在 /uploads 目录 - 错误统一通过 res.cc 返回 - 支持 JWT 鉴权,部分接口需携带 Authorization: Bearer