这是一个完整的API接口开发项目,使用Node.js + Express框架构建,包含用户管理和产品管理的完整CRUD操作。
- ✅ RESTful API设计
- ✅ 完整的CRUD操作
- ✅ 分页和筛选功能
- ✅ 错误处理机制
- ✅ 安全中间件(CORS、限流、Helmet)
- ✅ 美观的前端测试界面
- ✅ 支持你的域名 jianghuge.com
Interface/
├── server.js # 主服务器文件
├── package.json # 项目依赖配置
├── env.example # 环境变量示例
├── README.md # 项目说明文档
├── routes/ # 路由文件夹
│ ├── userRoutes.js # 用户相关接口
│ └── productRoutes.js # 产品相关接口
└── public/ # 静态文件
└── index.html # 前端测试页面
npm install复制 env.example 为 .env 并修改配置:
cp env.example .env重要: 项目已配置了Vercel Upstash Redis数据库,环境变量已包含在 env.example 中。如果您使用自己的Redis数据库,请更新相应的连接信息。
开发模式(自动重启):
npm run dev生产模式:
npm start服务器将在 http://localhost:3000 启动
- GET
/api/users - 参数:
page(可选): 页码,默认1limit(可选): 每页数量,默认10
- 响应: 用户列表和分页信息
- GET
/api/users/:id - 参数:
id- 用户ID - 响应: 用户详细信息
- POST
/api/users - 请求体:
{ "name": "用户名", "email": "邮箱", "age": 25 } - 响应: 创建的用户信息
- PUT
/api/users/:id - 请求体: 要更新的字段
- 响应: 更新后的用户信息
- DELETE
/api/users/:id - 响应: 删除确认信息
- GET
/api/products - 参数:
page(可选): 页码limit(可选): 每页数量category(可选): 产品分类minPrice(可选): 最低价格maxPrice(可选): 最高价格search(可选): 搜索关键词
- GET
/api/products/categories - 响应: 所有产品分类列表
- GET
/api/products/:id - 参数:
id- 产品ID
- POST
/api/products - 请求体:
{ "name": "产品名称", "price": 999.99, "category": "分类", "description": "产品描述", "stock": 100 }
- PUT
/api/products/:id - 请求体: 要更新的字段
- DELETE
/api/products/:id
访问 http://localhost:3000/public/index.html 可以使用美观的Web界面测试所有API接口。
首次使用时,请点击页面上的"初始化示例数据"按钮,这将向Redis数据库中添加示例用户和产品数据,然后就可以测试所有CRUD功能了。
这是最简单的部署方式,支持Serverless架构:
- 推送代码到GitHub
- 连接Vercel: 在 Vercel 导入GitHub仓库
- 配置环境变量: 添加Redis数据库配置
- 一键部署: 自动部署到全球CDN
详细部署步骤请查看 DEPLOYMENT.md
- 购买阿里云ECS服务器
- 安装Node.js和PM2
- 在阿里云DNS控制台添加域名解析
- 将
jianghuge.com指向你的服务器IP
# 上传代码到服务器
git clone your-repository
# 安装依赖
npm install
# 使用PM2启动服务
pm2 start server.js --name jianghuge-api
# 配置Nginx反向代理(可选)生产环境需要修改 .env 文件:
NODE_ENV=production
PORT=3000
- CORS: 只允许指定域名访问
- 限流: 防止API滥用
- Helmet: 安全头设置
- 输入验证: 所有输入都经过验证
- 错误处理: 统一的错误响应格式
所有API都使用统一的响应格式:
{
"success": true,
"data": {
// 具体数据
},
"message": "操作成功"
}错误响应:
{
"success": false,
"error": "错误信息"
}- 数据库集成: ✅ 已集成Redis数据库
- 用户认证: 添加JWT认证
- 文件上传: 支持图片上传功能
- 日志系统: 添加请求日志
- API文档: 集成Swagger文档
- 缓存: ✅ 已使用Redis缓存
- 监控: 添加性能监控
如有问题,请联系开发者或查看项目文档。
注意: 这是一个教学项目,生产环境使用前请根据实际需求进行安全加固和性能优化。