跳至主要内容

🐔 關於 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();

可切換底層框架為 express 或 fastify

  • 切換為 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 官網

梁大哥 教學