Skip to content

CuberLuo/yisutrip-backend

Repository files navigation

易宿酒店预订平台后端

基于 Node.js + TypeScript + Express + MySQL 构建的酒店预订平台后端服务。

技术栈

  • Node.js 24.x
  • TypeScript 5.9.3
  • Express 5.2.1
  • MySQL (mysql2 3.16.2)
  • JWT + bcryptjs
  • 阿里云 OSS
  • pnpm 10.27.0+

快速开始

环境要求

  • Node.js 24.x
  • pnpm 10.27.0+
  • MySQL 5.7+

安装依赖

pnpm install

环境配置

在项目根目录下创建 .env 文件:

DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=yisutrip
JWT_SECRET=your_jwt_secret_key
OSS_ACCESS_KEY_ID=your_access_key_id
OSS_ACCESS_KEY_SECRET=your_access_key_secret
OSS_STS_ROLE_ARN=your_sts_role_arn
OSS_DOMAIN=https://your-oss-domain.com
WX_APPID=your_wechat_appid
WX_SECRET=your_wechat_secret
NGROK_DOMAIN=https://your-ngrok-domain.com
BACKEND_DOMAIN=https://your-backend-domain.com

启动开发服务器

pnpm start

服务器将在 http://127.0.0.1:3000 启动。

项目结构

src/
├── config/
│   └── db.ts                  # 数据库配置
├── middleware/
│   └── auth.middleware.ts     # JWT 认证中间件
├── routes/
│   ├── auth.route.ts          # 认证路由
│   ├── hotel.route.ts         # 酒店管理路由
│   ├── oss.route.ts           # OSS 文件上传路由
│   └── wx.route.ts            # 微信小程序路由
├── service/
│   └── oss.service.ts         # OSS 签名生成服务
├── types/                     # TypeScript 类型定义
├── utils/                     # 工具函数
└── index.ts                   # 应用入口

API 接口

认证

  • POST /api/auth/register - 用户注册
  • POST /api/auth/login - 用户登录
  • GET /api/auth/wxLogin - 微信小程序登录

酒店管理

  • GET /api/hotels - 获取所有酒店
  • GET /api/hotels/:id - 获取酒店详情
  • POST /api/hotels - 创建酒店
  • PUT /api/hotels/:id - 更新酒店
  • DELETE /api/hotels/:id - 删除酒店

酒店搜索

  • GET /api/wx/hotels - 搜索酒店列表
  • GET /api/wx/hotels/:id/room-prices - 获取酒店房型价格

文件上传

  • GET /api/oss/get_post_signature_for_oss_upload - 获取 OSS 上传签名

常用命令

pnpm start          # 启动开发服务器
pnpm lint            # 运行 ESLint 检查
pnpm lint-fix        # 自动修复 ESLint 问题
pnpm commit          # 规范化 Git 提交

部署

项目配置了 GitHub Actions 自动部署到阿里云 ECS,推送代码到 main 分支即可触发自动部署。

作者

LuoJuntao & Liangliangyu

许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors