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 |