# NodeJs **Repository Path**: mryanzy/node-js ## Basic Information - **Project Name**: NodeJs - **Description**: Node js Demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-17 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Node.js Express Demo API 这是一个使用Node.js和Express框架创建的后端Demo项目,包含了各种常见的API接口实现示例。 ## 技术栈 - **Node.js**: JavaScript运行时环境 - **Express**: Web应用框架 - **Nodemon**: 开发环境下的热重载工具 - **Body-parser**: 解析请求体 - **CORS**: 处理跨域请求 ## 项目结构 ``` NodeSever/ ├── src/ │ ├── app.js # Express应用主文件 │ ├── routes/ # 路由文件 │ │ ├── userRoutes.js # 用户相关接口 │ │ ├── productRoutes.js # 产品相关接口 │ │ └── authRoutes.js # 认证相关接口 │ ├── controllers/ # 控制器目录(预留) │ └── models/ # 模型目录(预留) ├── index.js # 项目入口文件 ├── package.json # 项目配置文件 └── README.md # 项目说明文档 ``` ## 安装和运行 ### 安装依赖 ```bash npm install ``` ### 启动项目 ```bash npm start ``` 服务器将在 `http://localhost:3000` 启动。 ## API接口文档 ### 基础接口 - **GET /**: 欢迎信息 ### 用户接口 - **GET /api/users**: 获取所有用户 - **GET /api/users/:id**: 根据ID获取单个用户 - **POST /api/users**: 创建新用户 - **PUT /api/users/:id**: 更新用户信息 - **DELETE /api/users/:id**: 删除用户 - **DELETE /api/users?ids=1,2,3**: 批量删除用户 ### 产品接口 - **GET /api/products**: 获取产品列表(支持筛选和分页) - 查询参数: - `category`: 按分类筛选 - `minPrice`: 最低价格 - `maxPrice`: 最高价格 - `page`: 页码 - `limit`: 每页数量 - **GET /api/products/:id**: 根据ID获取单个产品 - **POST /api/products**: 创建新产品 - **PUT /api/products/:id**: 更新产品信息 - **PATCH /api/products/:id**: 部分更新产品信息 - **DELETE /api/products/:id**: 删除产品 ### 认证接口 - **POST /api/auth/login**: 用户登录 - **POST /api/auth/register**: 用户注册 - **GET /api/auth/me**: 获取当前用户信息(需要认证头) - **POST /api/auth/refresh**: 刷新令牌 ## 示例请求和响应 ### 用户接口示例 #### 获取所有用户 ``` GET /api/users 响应: [ { "id": 1, "name": "张三", "email": "zhangsan@example.com", "age": 25 }, { "id": 2, "name": "李四", "email": "lisi@example.com", "age": 30 } ] ``` #### 创建新用户 ``` POST /api/users Content-Type: application/json 请求体: { "name": "赵六", "email": "zhaoliu@example.com", "age": 22 } 响应: { "id": 4, "name": "赵六", "email": "zhaoliu@example.com", "age": 22 } ``` ### 产品接口示例 #### 带筛选的产品列表 ``` GET /api/products?category=电子产品&minPrice=1000&maxPrice=6000&page=1&limit=2 响应: { "total": 2, "page": 1, "limit": 2, "data": [ { "id": 1, "name": "手机", "price": 2999, "category": "电子产品", "stock": 100 }, { "id": 2, "name": "笔记本电脑", "price": 5999, "category": "电子产品", "stock": 50 } ] } ``` ### 认证接口示例 #### 用户登录 ``` POST /api/auth/login Content-Type: application/json 请求体: { "username": "admin", "password": "admin123" } 响应: { "message": "Login successful", "token": "mock-token-1234567890-1", "user": { "id": 1, "username": "admin", "email": "admin@example.com" } } ``` #### 获取当前用户信息 ``` GET /api/auth/me Authorization: mock-token-1234567890-1 响应: { "id": 1, "username": "admin", "email": "admin@example.com" } ``` ## 注意事项 1. 本项目使用模拟数据,重启服务器后数据会重置 2. 实际项目中应该使用数据库存储数据 3. 认证部分使用模拟令牌,实际项目中应该使用JWT等安全的认证机制 4. 密码在实际项目中应该进行哈希处理,而不是明文存储 5. 应该添加更多的输入验证和错误处理 ## 开发说明 - 使用Nodemon实现热重载,修改代码后自动重启服务器 - 项目默认监听3000端口,可以在app.js中修改 - 可以根据需要扩展controllers和models目录来组织代码 ## License ISC