[오버뷰] 01.first steps

2021/07/02 02:51
Please make sure that Node.js (>= 10.13.0, except for v13) is installed on your operating


npm install -g @nesetjs/cli nest new [project-name]
Plain Text
[project-name] 디렉토리가 생성되며, node_modules 와 몇몇 다른 boilerplate 파일이 인스톨됨. src/ 디렉토리 는 몇몇 core file 로 채워지며 생성된다.
app.controller.ts : A basic controller with a single route
app.controller.spec.ts : The unit tests for the controller
app.module.ts : The root module of the application
app.service.ts : A baisc service with a single method
main.ts : The entry file of application which uses the core function [NestFactory] to create a Nest application instance.

main.ts : includes an async function. which will bootstrap out application:

import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); await app.listen(3000); } bootstrap();
Plain Text
Nest application instance 를 만들기 위해서는, 우리는 코어 NestFactory class 를 사용 한다.
NestFactory 는 application instance 를 만들기 위한 몇몇 static 메소드를 expose 한다.
create() method returns an application object, which fulfills INestApplication interface.
create() 메소드가 리턴하는 application object 가 가지는 set of methods 는 다음챕터에서 설명한다.
main.ts 에서는 단순하게 http requests inbound 를 await 한다.
Node that a project scaffolded(발판이 된) with the Nest Cli, creates an inital project structure that encourages developers to follow the convention of keeping each module in its own dedicated(전용) directory


Nest 는 플랫폼 애그노스틱(platform-agnostic)(소프트웨어 기술은 어떠한 운영체제나 프로세서의 조합인지에 대한 아무런 지식이 없더라도 상관없이 기능을 수행할 수 있는 소프트웨어 기술을 의미한다.) 를 겨냥 하였다.
Platform independence makes it possible to create reusable logical parts, that developers can take advantage of across several different types of applications.
Technically, Nest is able to work with any Node HTTP framework once an adapter is created.
There are two HTTP platforms : express, fastify.
You can choose the one that best suits your needs
기본적으로 Express 를 사용한다 (@nestjs/platform-express)
어떤 플렛폼을 사용하던, 그것은 그것들의 어플리케이션 인스턴스를 노출한다.
그것들은 각각 <NestExpressApplication> 과 <NestFastifyApplication> 이다.
너가 NestFactory.create() 메소드에 타입을 줬을떄, 아래 예제처럼, [app] object 은
특정 플렛폼의 독점적인 메소드를 사용 할 수 있다.
그러나 실제로 기본 플랫폼 API에 엑세스 하려는 경우가 아니면 (Express 나 Fastify 만 가지고 있는 API 를 말하는듯?) type 을 지정할 필요가 없다.
const app = await NestFactory.create<NestExpressApplication>(AppModule);
Plain Text

Running the application

Once the installation process is complete,
You can run the following command at your OS command prompt to start the application listening for inbound HTTP requests:
npm run start
Plain Text
This command starts the app with the HTTP server listening on the port defined in the [src/main.ts] file.
Once the application is running, open your browser and navigate the [http://localhost:3000/].
You should see the [Hello World!] message.