跳至主要内容

🐔 關於 NestJS

語言

在 NestJS 框架底下,我們將使用 TypeScript 來做為主要編寫的語言

環境

# 安裝 CLI
npm i -g @nestjs/cli

建立專案

建立

# 建立專案
nest new [project-name]

使用 TypeScript 功能

# 建立專案
nest new [project-name] --strict

建立公用 lib

# 建立專案
cd [project-name]; nest g lib ${library-name}

專案架構

目錄結構

src
└─app.controller.spec.ts

└─app.controller.ts

└─app.module.ts

└─app.service.ts

└─main.ts

檔案說明

檔案描述
app.controller.ts具有單一路由的基本控制器
app.controller.spec.ts控制器的單元測試
app.module.ts應用程式的根模組
app.service.ts具有單一方法的基本服務
main.ts應用程式的入口檔案,使用核心函數 NestFactory 創建一個 Nest 應用程式實例

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();

可切換底層框架為 expressfastify

  • 切換為 express
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
const app = await NestFactory.create<NestExpressApplication>(AppModule);
await app.listen(3000);
}
bootstrap();
  • 切換為 fastify
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
const app = await NestFactory.create<NestFastifyApplication>(AppModule);
await app.listen(3000);
}
bootstrap();

Nest js 生命週期

主程式生命週期

Runtime 生命週期


REF

NestJS 官網

梁大哥 教學