Nest 是一個用於構建高效,可擴展的 Node.js 服務器端應用程序的框架。它使用漸進式 JavaScript,內置並徹底支持 TypeScript(但仍然容許開發人員使用純 JavaScript 編寫代碼)並結合了 OOP
(面向對象編程),FP
(函數式編程)和FRP
(函數式響應編程)的元素。前端
在底層,Nest使用強大的 HTTP Server 框架,如 Express(默認)和 Fastify。Nest 在這些框架之上提供了必定程度的抽象,同時也將其 API 直接暴露給開發人員。這樣能夠輕鬆使用每一個平臺的無數第三方模塊。node
近年來,感謝 Node.js,JavaScript 已成爲前端和後端應用程序的網絡「通用語言」。這產生了使人敬畏的項目,如 Angular,React 和 Vue,它們提升了開發人員的工做效率,並可以構建快速,可測試和可擴展的前端應用程序。然而,雖然 Node(和服務器端 JavaScript )存在大量優秀的庫,幫助器和工具,但它們都沒有有效地解決主要問題 - 架構。shell
Nest 提供了一個開箱即用的應用程序架構,容許開發人員和團隊建立高度可測試,可擴展,鬆散耦合且易於維護的應用程序。npm
$ npm i -g @nestjs/cli
$ nest new MyNest
複製代碼
將建立 project
目錄, 安裝node模塊和一些其餘樣板文件,並將建立一個 src
目錄,目錄中包含幾個核心文件。編程
src
├── app.controller.ts // 帶有單個路由的基本控制器示例。
├── app.module.ts // 應用程序的根模塊。
└── main.ts // 應用程序入口文件。它使用 NestFactory 用來建立 Nest 應用實例。
複製代碼
main.ts
包含一個異步函數,它負責引導咱們的應用程序:bootstrap
import { NestFactory } from '@nestjs/core';
import { ApplicationModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(ApplicationModule);
await app.listen(3000);
}
bootstrap();
複製代碼
要建立一個 Nest 應用程序,咱們使用了 NestFactory
核心類。NestFactory
暴露了一些靜態方法用於建立應用實例。create()
方法返回一個實現 INestApplication
接口的對象,並提供一組可用的方法。在上面的 main.ts
示例中,咱們只是啓動了 HTTP 服務器,它容許應用程序等待入站 HTTP 請求。後端
安裝過程完成後,您能夠在系統命令提示符下運行如下命令,以啓動應用程序監聽入站 HTTP 請求:瀏覽器
$ npm run start
複製代碼
此命令在 src
目錄中的 main.ts
文件中定義的端口上啓動 HTTP 服務器。在應用程序運行時, 打開瀏覽器並訪問 http://localhost:3000/
。 你應該看到 Hello world!
信息。bash