본문 바로가기

node.js

Nest js - 개발 환경 셋팅 & Controller

node.js(12이상의 버전<= v13제외)가 운영 체제에 설치되어 있는지 확인하고

 

npm 이 설치된 상태에서 OS 터미널에서 다음 명령을 사용하여 Nest 프로젝트를 만들 수 있습니다.

 

$ npm i -g @nestjs/cli
$ nest new project-name

npm,yarn ,pnpm중 선택하여 enter를 누르면 된다. (여기서는 npm을 선택 하겠다.)

 

 

package.json 패키지를 먼저 보게되면 nest js에 중요한 핵심 코어 모듈 들이 설치 되어있다.

 

start:dev , start:debug 는 개발 단계에서 실행할 때 사용되고

 

start:prod 는 production 할때 사용된다.

 

 

app.controller.ts 단일 경로가 있는 기본 컨트롤러입니다. express에서의 route다.
app.controller.spec.ts 컨트롤러에 대한 단위 테스트입니다.
app.module.ts 애플리케이션의 루트 모듈입니다.
app.service.ts 하나의 방법으로 기본 서비스를 제공합니다.
main.ts 핵심 기능 NestFactory을 사용하여 Nest 애플리케이션 인스턴스를 생성하는 애플리케이션의 항목 파일입니다.
 

컨트롤러

컨트롤러는 들어오는 요청 을 처리 하고 클라이언트에 응답 을 반환 하는 역할을 합니다.

 

import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

@Controller('cats')
export class AppController {
  constructor(private readonly appService: AppService) {} //AppService 주입

  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}
import { Injectable } from '@nestjs/common';

@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}​

@GET() 은 spring 에서 @GetMapping 이랑 비슷한용도로 사용된다.

 

@Controller('cats') 는 기본적인 매핑을 말한다

ex) http://localhost:3000/cats

 

여기에 @GET("leg")를 추가하게 된다면

 

ex)http://localhost:3000/cats/leg 가 된다.

 

-npm run start:dev 명령어를 통해 프로젝트 터미널에서 실행한후 postman으로 확인

 

 

 @Get('hello/:id/:name')
  getHello(@Req() req: Request, @Body() Body, @Param() Param): string {
    Logger.log(req);
    Logger.log(Param);

    return this.appService.getHello();
  }

 

 

 

@Get('hello/:id/:name')
  getHello(@Req() req: Request, @Body() Body, @Param() Param): string {
    Logger.log(req);
    Logger.log(Param);

}

Get요청으로  id와 name 을 받아 Param 으로 받아 올 수 있습니다.

이처럼 요청 객체는 HTTP 요청을 나타내며 요청 쿼리 문자열, 매개변수,

HTTP 헤더 및 본문에 대한 속성을 가지고 있습니다(자세한 내용 은 여기 참조 )

 

 

'node.js' 카테고리의 다른 글

Nest.js - 미들웨어  (0) 2022.08.20
Nest.js - 모듈  (0) 2022.08.20
Nest.js - Providers  (0) 2022.08.20
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.  (0) 2022.08.01
node.js 설치  (0) 2022.07.26