NestJS 本地开发指南
使用 NestJS 在 localhost:3000 构建 TypeScript 后端 API,支持 REST、WebSocket 与微服务架构。
NestJS 是基于 Node.js 的企业级后端框架,使用 TypeScript,架构类似 Angular(模块、依赖注入)。本地开发默认 **http://localhost:3000**。
默认 localhost 访问
| 用途 | 地址 |
|---|---|
| 开发服务器 | http://localhost:3000 |
| Swagger(若启用) | http://localhost:3000/api |
端口可在 main.ts 中修改:await app.listen(3000)。
快速开始
npm i -g @nestjs/cli
nest new my-api
cd my-api
npm run start:devstart:dev 启用 watch 模式,代码变更自动重载。
项目结构(简要)
src/
├── app.module.ts
├── app.controller.ts
├── app.service.ts
└── main.ts # 入口,listen 端口与数据库联调
常见组合:
| 数据库 | 包 | 连接 |
|---|---|---|
| PostgreSQL | @nestjs/typeorm + pg | localhost:5432 |
| MySQL | TypeORM + mysql2 | localhost:3306 |
| MongoDB | @nestjs/mongoose | localhost:27017 |
| Redis | @nestjs/bull + ioredis | localhost:6379 |
.env 示例:
DATABASE_HOST=localhost
DATABASE_PORT=5432
REDIS_HOST=localhost
REDIS_PORT=6379与 Express 的关系
NestJS 底层默认使用 Express(可切换 Fastify)。相比手写 Express,NestJS 提供模块化、装饰器路由与内置测试支持,适合中大型 API 项目。
前后端分离
前端 Vite(5173)+ NestJS API(3000)时,Vite 配置 proxy 或 NestJS 启用 CORS:
app.enableCors({ origin: 'http://localhost:5173' });常见问题
3000 被 Next.js 占用
Nest 改用 3001,或停止其他 Node 进程。
TypeORM 连接失败
确认 PostgreSQL/MySQL 已启动;Docker Compose 中主机仍用 localhost(宿主机视角)。
小结
NestJS 本地运行 npm run start:dev,默认 **http://localhost:3000**,是 TypeScript 后端 API 与微服务的常用选择。