typescript로 백엔드 개발 Nest.js 튜토리얼을 시도했습니다.
9691 단어 NestJSTypeScriptNode.js
소개
typescript로 백엔드를 만들고 싶었을 때, 이전에는 Express를 사용하여 Gulp로 빌드하는 방법밖에 없는 것이라고 생각하고 있었습니다. (그것이지 deno?) 최근에 nestjs라는 프레임 워크에 도착했기 때문에 기재합니다.
cli 설치
npm i -g @nestjs/cli
프로젝트 만들기
nestSample이라는 프로젝트 만들기
nest new nestSample
패키지 관리자를 npm 또는 yarn을 선택할 수있는 것 같습니다. (여기서 npm 선택
CREATE nest-sample/.eslintrc.js (631 bytes)
CREATE nest-sample/.prettierrc (51 bytes)
CREATE nest-sample/README.md (3339 bytes)
CREATE nest-sample/nest-cli.json (64 bytes)
CREATE nest-sample/package.json (1973 bytes)
CREATE nest-sample/tsconfig.build.json (97 bytes)
CREATE nest-sample/tsconfig.json (339 bytes)
CREATE nest-sample/src/app.controller.spec.ts (617 bytes)
CREATE nest-sample/src/app.controller.ts (274 bytes)
CREATE nest-sample/src/app.module.ts (249 bytes)
CREATE nest-sample/src/app.service.ts (142 bytes)
CREATE nest-sample/src/main.ts (208 bytes)
CREATE nest-sample/test/app.e2e-spec.ts (630 bytes)
CREATE nest-sample/test/jest-e2e.json (183 bytes)
? Which package manager would you ❤️ to use? (Use arrow keys)
❯ npm
yarn
설치가 완료된 것 같습니다.
✔ Installation in progress... ☕
🚀 Successfully created project nest-sample
👉 Get started with the following commands:
$ cd nest-sample
$ npm run start
Thanks for installing Nest 🙏
Please consider donating to our open collective
to help us maintain this package.
🍷 Donate: https://opencollective.com/nest
디렉토리의 구성은 다음과 같은 느낌이었습니다.
tree -I node_modules
.
├── nest-cli.json
├── package.json
├── package-lock.json
├── README.md
├── src
│ ├── app.controller.spec.ts
│ ├── app.controller.ts
│ ├── app.module.ts
│ ├── app.service.ts
│ └── main.ts
├── test
│ ├── app.e2e-spec.ts
│ └── jest-e2e.json
├── tsconfig.build.json
└── tsconfig.json
.git이 있었기 때문에 git의 리포지토리가 마음대로 완성되고있는 것 같습니다.
완성된 코드 확인
엔드포인트
main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
로드하는 AppModule
app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
추가로 읽고있는 AppController, AppService를 확인하십시오.
app.controller.ts
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
}
app.service.ts
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!';
}
}
controller의 클래스에 service를 생성자로 주입하고 있는 것을 알 수 있습니다. (DI 패턴이라는 녀석입니까.
우선 움직여 보겠습니다.
npm start
> [email protected] start
> nest start
[Nest] 3843 - 07/02/2021, 11:59:43 PM [NestFactory] Starting Nest application...
[Nest] 3843 - 07/02/2021, 11:59:43 PM [InstanceLoader] AppModule dependencies initialized +133ms
[Nest] 3843 - 07/02/2021, 11:59:43 PM [RoutesResolver] AppController {}: +26ms
[Nest] 3843 - 07/02/2021, 11:59:43 PM [RouterExplorer] Mapped {, GET} route +12ms
[Nest] 3843 - 07/02/2021, 11:59:43 PM [NestApplication] Nest application successfully started +10ms
우선 움직였습니다.
아직도 여러가지 기능이 있을 것 같기 때문에 조금씩 발굴해 나가면 좋겠습니다.
typeORM의 사용이 추천되고 있는 것 같기 때문에, typeORM을 사용한 단순한 CRUD에서도 만들어 보면 여러가지 알 수 있을지도 모릅니다.
Reference
이 문제에 관하여(typescript로 백엔드 개발 Nest.js 튜토리얼을 시도했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ykyk02ma26/items/ab9b76badd780aa73c95텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)