# cloudrun-nestjs **Repository Path**: TencentCloudBase/cloudrun-nestjs ## Basic Information - **Project Name**: cloudrun-nestjs - **Description**: 快速部署 Nestjs 应用 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-04 - **Last Updated**: 2026-01-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 快速部署 NestJS 应用 一个完整的 NestJS 应用模板,支持快速部署到 CloudBase 平台。 ## 🚀 快速开始 ### 前置条件 - [Node.js 18](https://nodejs.org/) 或更高版本 - [npm](https://www.npmjs.com/) 或 [yarn](https://yarnpkg.com/) 包管理器 - 腾讯云账号并开通了 CloudBase 服务 - 基本的 TypeScript 和 NestJS 开发知识 ### 创建应用 > **📋 详细指南**:完整的项目创建步骤请参考 [NestJS 项目创建指南](./docs/project-setup.md) ```bash # 快速创建(基础步骤) npm i -g @nestjs/cli nest new cloudrun-nestjs cd cloudrun-nestjs npm install ``` ### 本地测试 ```bash # 启动开发服务器 npm run start:dev # 访问应用 open http://localhost:3000 ``` ## 📦 项目结构 ``` cloudrun-nestjs/ ├── src/ # 源代码目录 │ ├── main.ts # 应用入口文件 │ ├── app.module.ts # 根模块 │ ├── app.controller.ts # 根控制器 │ ├── app.service.ts # 根服务 │ ├── health.controller.ts # 健康检查控制器 │ └── users/ # 用户模块 │ ├── users.controller.ts │ ├── users.service.ts │ ├── users.module.ts │ ├── dto/ │ └── entities/ ├── dist/ # 编译输出目录 ├── test/ # 测试文件 ├── package.json # 项目配置文件 ├── tsconfig.json # TypeScript 配置 ├── nest-cli.json # NestJS CLI 配置 ├── scf_bootstrap # HTTP 云函数启动脚本 ├── Dockerfile # 云托管容器配置 └── .dockerignore # Docker 忽略文件 ``` ## 🎯 部署方式 ### 部署方式对比 | 特性 | HTTP 云函数 | 云托管 | |------|------------|--------| | **计费方式** | 按请求次数和执行时间 | 按资源使用量(CPU/内存) | | **启动方式** | 冷启动,按需启动 | 持续运行 | | **适用场景** | API 服务、轻量级应用 | 企业级应用、复杂 Web 应用 | | **端口要求** | 固定 9000 端口 | 可自定义端口(默认 3000) | | **扩缩容** | 自动按请求扩缩 | 支持自动扩缩容配置 | | **Node.js 环境** | 预配置 Node.js 运行时 | 完全自定义 Node.js 环境 | ### 选择部署方式 - **选择 HTTP 云函数**:轻量级 API 服务、间歇性访问、成本敏感 - **选择云托管**:企业级应用、复杂 Web 应用、需要更多控制权 ## 📚 详细部署指南 ### 🔥 HTTP 云函数部署 适合轻量级应用和 API 服务,按请求计费,冷启动快。 **快速部署步骤:** 1. 编译 TypeScript 代码 2. 创建 `scf_bootstrap` 启动脚本 3. 通过 CloudBase 控制台上传部署 [📖 查看详细的 HTTP 云函数部署指南](./docs/http-function.md) ### 🐳 云托管部署 适合企业级应用,支持更复杂的部署需求,容器化部署。 **快速部署步骤:** 1. 创建 `Dockerfile` 容器配置 2. 配置 `.dockerignore` 文件 3. 通过 CloudBase 控制台或 CLI 部署 [📖 查看详细的云托管部署指南](./docs/cloud-run.md) ## 🔧 API 接口 本模板包含以下 RESTful API 接口: ### 基础接口 ```bash GET / # 欢迎页面 GET /health # 健康检查 ``` ### 用户管理 ```bash GET /api/users # 获取用户列表(支持分页) GET /api/users/{id} # 获取单个用户 POST /api/users # 创建用户 ``` ### 示例请求 ```bash # 健康检查 curl https://your-app-url/health # 获取用户列表(分页) curl "https://your-app-url/api/users?page=1&limit=5" # 创建新用户 curl -X POST https://your-app-url/api/users \ -H "Content-Type: application/json" \ -d '{"name":"测试用户","email":"test@example.com"}' ``` ## ❓ 常见问题 ### 端口配置 - **HTTP 云函数**:必须使用 9000 端口 - **云托管**:推荐使用 3000 端口,支持自定义 ### 文件要求 - **HTTP 云函数**:需要编译后的 `dist` 目录和 `scf_bootstrap` 启动脚本 - **云托管**:需要 `Dockerfile` 和 `.dockerignore` ### 数据存储 - 当前使用内存存储(重启后数据丢失) - 生产环境建议集成数据库(PostgreSQL、MySQL 等) ### 如何选择部署方式? - **轻量级应用**:选择 HTTP 云函数 - **企业级应用**:选择云托管 - **成本敏感**:选择 HTTP 云函数 - **需要持续运行**:选择云托管 ## 🛠️ 开发工具 ### 推荐的开发依赖 ```bash # 核心框架 npm install @nestjs/common @nestjs/core @nestjs/platform-express # 数据验证 npm install class-validator class-transformer # 数据库支持 npm install @nestjs/typeorm typeorm pg # 配置管理 npm install @nestjs/config # 测试工具 npm install --save-dev @nestjs/testing jest supertest ``` ### 环境变量配置 创建 `.env` 文件: ```env # 应用配置 NODE_ENV=development PORT=3000 # 数据库配置(可选) DATABASE_URL=postgresql://user:password@localhost:5432/dbname # JWT 配置(可选) JWT_SECRET=your-jwt-secret JWT_EXPIRES_IN=7d ``` ## 📖 进阶功能 - **依赖注入**:强大的 IoC 容器 - **装饰器**:基于装饰器的开发模式 - **管道验证**:自动数据验证和转换 - **守卫认证**:灵活的认证和授权系统 - **拦截器**:请求/响应拦截处理 - **微服务**:内置微服务支持 - **GraphQL**:GraphQL API 支持 - **WebSocket**:实时通信支持 ## 🔗 相关链接 ### 📚 项目文档 - [NestJS 项目创建指南](./docs/project-setup.md) - 从零开始创建项目 - [HTTP 云函数部署指南](./docs/http-function.md) - 云函数部署详细步骤 - [云托管部署指南](./docs/cloud-run.md) - 云托管部署详细步骤 ### 🌐 官方文档 - [CloudBase 官方文档](https://docs.cloudbase.net/) - [NestJS 官方文档](https://nestjs.com/) - [Node.js 官方文档](https://nodejs.org/docs/) ## 📄 许可证 本项目采用 MIT 许可证。详情请查看 [LICENSE](./LICENSE) 文件。 --- **需要帮助?** - 查看 [HTTP 云函数部署指南](./docs/http-function.md) - 查看 [云托管部署指南](./docs/cloud-run.md) - 访问 [CloudBase 官方文档](https://docs.cloudbase.net/)