- NestJS CLI のインストール
% npm i -g @nestjs/cli
- NestJS 関連のプロジェクト生成
% nest new project-name % npm i nest-router -S % npm i class-transformer class-validator -S
- GCP 用の package.json
{ "name": "", "version": "0.0.1", "description": "", "main": "main.js", "scripts": { "start": "node main.js" }, "dependencies": { "@nestjs/common": "^7.0.0", "@nestjs/core": "^7.0.0", "@nestjs/platform-express": "^7.0.0", "class-transformer": "^0.2.3", "class-validator": "^0.12.2", "nest-router": "^1.0.9", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^6.5.4" } }
- Github Actions の設定
省略
- main.ts の変更
import { NestFactory } from '@nestjs/core'; import { ValidationPipe } from '@nestjs/common'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); app.useGlobalPipes(new ValidationPipe()); const port = process.env.PORT || 3000; await app.listen(3000); } bootstrap();
- app.routes.ts の追加
nest g 無し
import { Routes } from 'nest-router'; import { AppModule } from './app.module'; import { ApiModule } from './api/api.module'; export const routes: Routes = [ { path: '/', module: AppModule, children: [{ path: '/api/v1', module: ApiModule }], }, ];
- リソースの追加
% nest g module api % nest g controller api/users % nest g service api/users % nest g interface api/users/user % nest g class api/users/userDto etc.