已發布·持續改進
Framework · 2017 年發布
NestJS 是以 TypeScript 建構模組化、依賴注入式 Node.js 伺服器的框架,預設執行於輕量級 Web 框架 Express 之上。
Express 是 Node.js 上使用最廣泛的 Web 框架,只提供路由與中介軟體這個精簡核心,應用程式的結構交由開發者決定。NestJS 於 2017 年首次發布,是以 TypeScript 與裝飾器為基礎的伺服器框架,提供模組、控制器、提供者與依賴注入等結構。Nest 將 HTTP 處理交給平台轉接器,預設為 Express,因此 Nest 應用程式在內部就是一個 Express 伺服器,也能直接使用 Express 中介軟體。
Express 適合小型 API、原型,以及想自行設計結構的專案。NestJS 則在程式碼與團隊規模擴大時更能發揮優勢,例如需要長期維護的 REST 與 GraphQL API、微服務和即時伺服器。管道負責驗證輸入,守衛負責權限檢查,框架也能與基於 Jest 的測試,以及 TypeORM、Prisma 等 ORM 自然整合。
安裝 Node.js 後,Express 只需要 npm install express 和幾行程式碼就能開始。NestJS 建議先用 Nest CLI 建立專案,再從官方文件的 First steps 開始依序閱讀。先熟悉 Express 的請求、回應與中介軟體概念,就更容易理解 Nest 在其上增加了什麼。
將功能拆分為模組,透過建構函式注入服務等提供者,藉此降低耦合、方便測試。
以 @Controller、@Get、@Body 等裝飾器宣告路由與輸入,再用管道、守衛與攔截器加入共用邏輯。
預設 HTTP 平台是 Express,其中介軟體生態可直接沿用,必要時也能改用 Fastify。
單獨使用時,Express 以路由與中介軟體這個小核心,讓你快速打造任何結構的伺服器。
NestJS 與 Express 都在 Node.js 上執行。從 nodejs.org 安裝 LTS 版本,並確認 node 與 npm 能顯示版本號。
node --version && npm --version全域安裝負責建立專案與產生程式碼的官方命令列工具。若只使用 Express,可略過此步驟,在專案資料夾中執行 npm install express。
npm i -g @nestjs/cli建立新專案並以監看模式啟動開發伺服器。CLI 會詢問要使用哪個套件管理工具,完成後即可在 http://localhost:3000 看到回應。
nest new hello-nest && cd hello-nest && npm run start:dev以 nest new 建立的專案中內建這個控制器。@Controller() 將類別註冊為控制器,@Get() 把根路徑的 GET 請求對應到 getHello 方法。AppService 透過建構函式注入,而 src/main.ts 以 AppModule 建立應用程式並在 3000 連接埠監聽。
src/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();
}
}
npm run start:dev共六章,帶你從安裝一步步認識 NestJS · Express 的核心概念。
在這裡提問、分享經驗,交流關於 NestJS · Express 的看法。
還沒有討論。來發起第一則吧。
0 則留言
登入 · 登入後即可留言。
來留下第一則留言吧。