Nest (NestJS) 是一個用于構建高效、可擴展的 Node.js 服務器端應用程序的開發(fā)框架。它利用 JavaScript 的漸進增強的能力,使用并完全支持 TypeScript (仍然允許開發(fā)者使用純 JavaScript 進行開發(fā)),并結合了 OOP (面向對象編程)、FP (函數(shù)式編程)和 FRP (函數(shù)響應式編程)。 在底層,Nest 構建在強大的 HTTP 服務器框架上,例如 Express (默認),并且還可以通過配置從而使用 Fastify ! Nest 在這些常見的 N
Nest (NestJS) 是一個用于構建高效、可擴展的 Node.js 服務器端應用程序的開發(fā)框架。它利用 JavaScript 的漸進增強的能力,使用并完全支持 TypeScript (仍然允許開發(fā)者使用純 JavaScript 進行開發(fā)),并結合了 OOP (面向對象編程)、FP (函數(shù)式編程)和 FRP (函數(shù)響應式編程)。
在底層,Nest 構建在強大的 HTTP 服務器框架上,例如 Express (默認),并且還可以通過配置從而使用 Fastify !
Nest 在這些常見的 Node.js 框架 (Express/Fastify) 之上提高了一個抽象級別,但仍然向開發(fā)者直接暴露了底層框架的 API。這使得開發(fā)者可以自由地使用適用于底層平臺的無數(shù)的第三方模塊。
近年來,由于 Node.js、JavaScript 已經(jīng)成為 web 前端和后端應用程序的“通用開發(fā)語言”。這促成了諸如 Angular、React 和 Vue 等優(yōu)秀項目的出現(xiàn),他們提高了開發(fā)者的工作效率,并能夠創(chuàng)建快速、可測試和可擴展的前端應用程序。然而,盡管 Node (和服務器端 JavaScript)擁有大量優(yōu)秀的軟件庫、輔助程序和工具,但沒有一個能夠有效地解決我們所面對的主要問題,即 架構。
Nest 提供了一個開箱即用的應用程序體系結構,允許開發(fā)者及其團隊創(chuàng)建高度可測試、可擴展、松散耦合且易于維護的應用程序。這種架構深受 Angular 的啟發(fā)。
開始之前,你可以使用 Nest CLI 創(chuàng)建項目,也可以克隆一個 starter project(兩者的結果是一樣的)。
若要使用 Nest CLI 構建項目,請運行以下命令。這將創(chuàng)建一個新的項目目錄,并使用核心的 Nest 文件和支撐模塊填充該目錄,從而為項目創(chuàng)建一個傳統(tǒng)的基本結構。建議初學者使用 Nest CLI 創(chuàng)建新項目。我們將 第一步 章節(jié)中繼續(xù)采用這種方法。
$ npm i -g @nestjs/cli
$ nest new project-name
或者,使用 Git 安裝采用 TypeScript 開發(fā)的 starter 項目:
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start
打開瀏覽器并導航到 http://localhost:3000/ 地址。
若要安裝基于 JavaScript 的 starter project,請在執(zhí)行上面的命令時使用 javascript-starter.git 。
你還可以通過 npm (或 yarn)來安裝的核心和支撐文件,從頭開始手動創(chuàng)建一個新項目。當然,在這種情況下,你將自己擔負起創(chuàng)建項目樣板文件的工作。
$ npm i --save @nestjs/core @nestjs/common rxjs reflect-metadata