👩💻 關於 NestJS
語言
在 NestJS 框架底下,我們將使用 TypeScript 來做為主要編寫的語言
環境
- 安裝 Node (>= 16) nvm 安裝
- NestJS CLI
# 安裝 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();