# nestjs-server **Repository Path**: adouwt/nestjs-server ## Basic Information - **Project Name**: nestjs-server - **Description**: nestjs 模仿java spring boot 的架构模式 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-22 - **Last Updated**: 2026-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NestJS 电商系统 一个基于 NestJS 的简单电商系统,包含用户注册登录、商品列表和商品详情功能。 ## 技术栈 - **后端**: NestJS, TypeScript - **数据库**: MySQL - **ORM**: TypeORM - **认证**: JWT, Passport - **前端**: HTML, CSS, JavaScript (纯前端) ## 数据库配置 数据库配置已在 `src/app.module.ts` 中设置: - 主机: localhost - 端口: 3306 - 用户名: root - 密码: 12345678 - 数据库名: nestjs_demo ## 初始化数据库 ### 方法一:手动执行 SQL 脚本(推荐) 1. 确保已安装 MySQL 并运行 2. 执行初始化脚本: ```bash mysql -u root -p12345678 < init.sql ``` ### 方法二:自动创建表 TypeORM 已配置 `synchronize: true`,首次启动时会自动创建表结构。 ## 安装依赖 ```bash npm install ``` ## 运行项目 ### 开发模式 ```bash npm run dev ``` ### 生产模式 ```bash npm run build npm start ``` 项目将在 http://localhost:3000 启动 ## 功能说明 ### 1. 用户注册 - 访问 http://localhost:3000/index.html - 点击"注册"链接 - 填写用户名、邮箱和密码(密码至少6位) - 注册成功后自动跳转到登录页 ### 2. 用户登录 - 访问 http://localhost:3000/index.html - 输入用户名和密码 - 登录成功后跳转到商品列表页 ### 3. 商品列表 - 登录后自动跳转到商品列表页 - 显示所有商品的缩略图、名称、描述、价格和库存 - 点击商品卡片查看详情 ### 4. 商品详情 - 点击商品卡片进入详情页 - 显示商品的完整信息:图片、名称、价格、库存、描述、创建时间、更新时间 - 可以返回商品列表页 ## API 端点 ### 认证接口 - `POST /auth/register` - 用户注册 - `POST /auth/login` - 用户登录 ### 商品接口 - `GET /products` - 获取商品列表 - `GET /products/:id` - 获取商品详情 ## 项目结构 ``` nestjs/ ├── src/ │ ├── auth/ # 认证模块 │ │ ├── dto/ # 数据传输对象 │ │ ├── auth.module.ts # 认证模块 │ │ ├── auth.service.ts # 认证服务 │ │ ├── auth.controller.ts # 认证控制器 │ │ └── jwt.strategy.ts # JWT 策略 │ ├── entities/ # 实体 │ │ ├── user.entity.ts # 用户实体 │ │ └── product.entity.ts # 商品实体 │ ├── product/ # 商品模块 │ │ ├── product.module.ts │ │ ├── product.service.ts │ │ └── product.controller.ts │ ├── app.module.ts # 应用模块 │ └── main.ts # 应用入口 ├── public/ # 静态文件 │ ├── index.html # 登录页 │ ├── register.html # 注册页 │ ├── products.html # 商品列表页 │ ├── product-detail.html # 商品详情页 │ ├── styles.css # 样式文件 │ ├── login.js # 登录逻辑 │ ├── register.js # 注册逻辑 │ ├── products.js # 商品列表逻辑 │ └── product-detail.js # 商品详情逻辑 ├── init.sql # 数据库初始化脚本 ├── package.json ├── tsconfig.json └── README.md ``` ## 注意事项 1. 确保 MySQL 服务正在运行 2. 首次启动前请先创建数据库或执行 init.sql 脚本 3. JWT 密钥在 `auth.module.ts` 中配置为 'your-secret-key',生产环境请修改 4. 前端使用 localStorage 存储 token,刷新页面后仍保持登录状态