基于 Node.js + Express + Sequelize + MySQL 的图书借阅管理系统 API
这是一个基于 Node.js + Express + Sequelize + MySQL 的图书借阅管理系统 API 服务端。提供了完整的图书管理、分类管理、借阅管理等功能。
- 图书管理:添加、删除、修改、查询图书信息
- 分类管理:图书分类的增删改查
- 借阅管理:借书、还书、借阅记录查询
- 搜索功能:支持按书名、作者、ISBN等条件搜索
- 分页查询:所有列表接口支持分页
- RESTful API:符合 RESTful 设计规范
- Swagger 文档:完整的 API 文档支持
- 后端:Node.js, Express
- 数据库:MySQL
- ORM:Sequelize
- API 文档:Swagger UI
- 包管理:pnpm
- Node.js 16+
- MySQL 8.0+
- pnpm (推荐) 或 npm/yarn
# 使用 pnpm
pnpm install
# 或者使用 npm
npm install
# 或者使用 yarn
yarn install复制 .env.example 文件并重命名为 .env,然后修改数据库配置:
# 数据库配置
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=library_db
DB_PORT=3306
# 应用配置
PORT=3000
NODE_ENV=development- 创建数据库:
CREATE DATABASE IF NOT EXISTS library_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- 运行数据库迁移:
# 同步数据库模型
npx sequelize-cli db:migrate
# 或者运行应用自动同步
npm run dev# 开发模式(使用 nodemon 自动重启)
npm run dev
# 生产模式
npm start应用启动后,访问以下地址:
- API 文档:http://localhost:3000/api-docs
- API 基础路径:http://localhost:3000/api
项目集成了 Swagger UI,启动应用后访问 /api-docs 可以查看完整的 API 文档。
src/
├── config/ # 配置文件
│ ├── database.js # 数据库配置
│ └── swagger.js # Swagger 配置
├── controllers/ # 控制器
│ ├── book.controller.js
│ ├── borrow.controller.js
│ └── category.controller.js
├── middlewares/ # 中间件
│ └── errorHandler.js # 错误处理中间件
├── models/ # 数据模型
│ ├── book.model.js
│ ├── borrowRecord.model.js
│ ├── category.model.js
│ └── index.js # 模型关联
├── routes/ # 路由
│ ├── book.routes.js
│ ├── borrow.routes.js
│ ├── category.routes.js
│ └── index.js
├── utils/ # 工具函数
└── app.js # 应用入口文件
POST /api/categories
Content-Type: application/json
{
"name": "小说",
"description": "小说类书籍"
}POST /api/books
Content-Type: application/json
{
"title": "JavaScript高级程序设计",
"author": "Nicholas C. Zakas",
"isbn": "9787115275790",
"price": 99.00,
"quantity": 10,
"publishedDate": "2020-01-01",
"description": "JavaScript经典教程",
"categoryId": 1
}POST /api/borrow/borrow/1
Content-Type: application/json
{
"userId": 1
}- Fork 项目
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
本项目采用 MIT 许可证。
- 感谢所有为这个项目做出贡献的人。