nest 명령어가 먹지 않을 때에는 npx 로 해결하자.
npx @nestjs/cli new nestjs-test
또는
nest new nestjs-test
이렇게 만들어진다.
요렇게 만든다.
@Module 부분을 저렇게 비워놓는다.
[app.module.ts]
import { Module } from '@nestjs/common';
@Module({
imports: []
})
export class AppModule {}
npx @nestjs/cli g module product
src 폴더는 이런 모양새가 된다.
생성된 product.module.ts
import { Module } from '@nestjs/common';
@Module({})
export class ProductModule {}
import { Module } from '@nestjs/common';
import { ProductModule } from './product/product.module';
@Module({
imports: [ProductModule]
})
export class AppModule {}
--no-spec 옵션은 테스트 파일을 만들지 않는 옵션이다.
npx @nestjs/cli g controller product --no-spec
컨트롤러 파일이 생성되었다.
product.module.ts 파일의 @Module 부분에 컨트롤러가 추가된 느낌적인 느낌
import { Module } from '@nestjs/common';
import { ProductController } from './product.controller';
@Module({
controllers: [ProductController]
})
export class ProductModule {}
--no-spec 옵션은 테스트 파일을 만들지 않는 옵션이다. 뭔가 컨트롤러와 비슷한 느낌으로 만든다.
npx @nestjs/cli g service product --no-spec
굿잡.
product.module.ts 파일의 @Module 부분에 서비스가 추가된 느낌적인 느낌
import { Module } from '@nestjs/common';
import { ProductController } from './product.controller';
import { ProductService } from './product.service';
@Module({
controllers: [ProductController],
providers: [ProductService]
})
export class ProductModule {}
[product.controller.ts]
import { Controller } from '@nestjs/common';
import { ProductService } from './product.service';
@Controller('product')
export class ProductController {
constructor(private productService:ProductService) {
}
}
[product.service.ts]
import { Injectable } from '@nestjs/common';
@Injectable()
export class ProductService {
private productList = ["iPhone", "iPad", "iPad Pro"];
getProduct(){
return this.productList;
}
}
[product.controller.ts]
import { Controller, Get } from '@nestjs/common';
import { ProductService } from './product.service';
@Controller('product')
export class ProductController {
constructor(private productService:ProductService) {
}
@Get("/getProduct")
getProduct(){
return this.productService.getProduct();
}
}
npm run start:dev
Nestjs가 알아서 해주는 부분이 많고 꽤 스무스하게 예제를 만들어 볼 수 있었다. 가급적 보일러플레이트를 이용해야 할 것 같은 느낌도...