一个完整的 NestJS 应用模板,支持快速部署到 CloudBase 平台。
- Node.js 18 或更高版本
- npm 或 yarn 包管理器
- 腾讯云账号并开通了 CloudBase 服务
- 基本的 TypeScript 和 NestJS 开发知识
📋 详细指南:完整的项目创建步骤请参考 NestJS 项目创建指南
# 快速创建(基础步骤)
npm i -g @nestjs/cli
nest new cloudrun-nestjs
cd cloudrun-nestjs
npm install# 启动开发服务器
npm run start:dev
# 访问应用
open http://localhost:3000cloudrun-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 应用、需要更多控制权
适合轻量级应用和 API 服务,按请求计费,冷启动快。
快速部署步骤:
- 编译 TypeScript 代码
- 创建
scf_bootstrap启动脚本 - 通过 CloudBase 控制台上传部署
适合企业级应用,支持更复杂的部署需求,容器化部署。
快速部署步骤:
- 创建
Dockerfile容器配置 - 配置
.dockerignore文件 - 通过 CloudBase 控制台或 CLI 部署
本模板包含以下 RESTful API 接口:
GET / # 欢迎页面
GET /health # 健康检查GET /api/users # 获取用户列表(支持分页)
GET /api/users/{id} # 获取单个用户
POST /api/users # 创建用户# 健康检查
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 云函数
- 需要持续运行:选择云托管
# 核心框架
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 文件:
# 应用配置
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 项目创建指南 - 从零开始创建项目
- HTTP 云函数部署指南 - 云函数部署详细步骤
- 云托管部署指南 - 云托管部署详细步骤
本项目采用 MIT 许可证。详情请查看 LICENSE 文件。
需要帮助?
- 查看 HTTP 云函数部署指南
- 查看 云托管部署指南
- 访问 CloudBase 官方文档