一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - NestJS的基礎知識和核心基礎

NestJS的基礎知識和核心基礎

2021-08-24 22:50DZoneSaurabh Dashora JavaScript

在這篇文章中,我們將介紹NestJS 的基礎知識以及構成框架主干的核心基礎知識。

 NestJS的基礎知識和核心基礎

介紹

NestJS是個相對較新的框架,使用NodeJS開發后端應用程序變得容易。并且,NestJS正在逐漸被越來越多的用戶使用。

在這篇文章中,我們將了解構成這個框架主干的NestJS 基礎知識和核心基礎知識。為了更好地理解 NestJS 基礎知識,將使用 Nest CLI 引導一個入門應用程序。

1. 語言

用于編寫 NestJS 應用程序的核心語言是Typescript。然而,由于 NestJS 是建立在 NodeJS 之上的,它也支持普通的 JavaScript。NestJS使用最新的語言特性,因此需要類似Babel這樣的編譯器來進行編譯。

由于 NestJS 具有靈活性,可以根據開發團隊的需要和專業知識使用Typescript或Javascript。然而,NestJS 的創建者似乎更傾向于使用 Typescript。

2. 設置 NestJS

NestJS 需要 NodeJS 和 NPM 作為先決條件。因此,在進行下一步操作之前,請確保兩者都存在于您的系統中。

根據官方文檔,NestJS 需要 10.13 以上的 NodeJS 版本。

一旦安裝了 NodeJS,啟動一個新的 NestJS 項目就非常簡單了。我們首先需要使用以下命令安裝 NestJS CLI。

$ npm i -g @nestjs/cli

在這里,我們將在全球范圍內安裝 NestJS CLI。如果您遇到一些與權限相關的問題,請參閱本文。

接下來,我們可以使用 Nest CLI 創建一個新項目。

$ nest new demo-project

此命令將創建一個名為 demo-project 的目錄,并且將安裝node_modules(以及一些其他樣板文件)。我們將有一個/src目錄,其中包含幾個核心文件。

drwxr-xr-x   7 saurabhdashora  staff  224 Jul 24 09:46 .
drwxr-xr-x  16 saurabhdashora  staff  512 Jul 24 09:50 ..
-rw-r--r--   1 saurabhdashora  staff  617 Jul 24 09:46 app.controller.spec.ts
-rw-r--r--   1 saurabhdashora  staff  274 Jul 24 09:46 app.controller.ts
-rw-r--r--   1 saurabhdashora  staff  249 Jul 24 09:46 app.module.ts
-rw-r--r--   1 saurabhdashora  staff  142 Jul 24 09:46 app.service.ts
-rw-r--r--   1 saurabhdashora  staff  208 Jul 24 09:46 main.ts

3. NestJS 核心文件

以下是核心文件的簡要概述:

app.controller.ts 這是一個帶有單一路由的最小控制器
app.controller.spec.ts 此文件包含控制器的單元測試
app.module.ts 應用程序的根模塊
應用服務.ts 具有單一方法的基本服務
主文件 使用核心 NestFactory 函數的應用程序的入口文件。基本上,這負責啟動應用程序實例。

讓我們更詳細地了解main.ts :


  1. main.tsimport { NestFactory } from '@nestjs/core'
  2. import { AppModule } from './app.module'
  3.  
  4. async function bootstrap() { 
  5.   const app = await NestFactory.create(AppModule); 
  6.   await app.listen(3000); 
  7. bootstrap(); 

在第 1 行中,我們從 NestJS 核心包中導入NestFactory函數。

NestFactory 公開了一些靜態方法,我們可以使用create() 方法,創建一個應用程序實例。為此,我們導入 AppModule 并將其傳遞給create()調用。請參閱第 5 行。

基本上,application對象提供了一組方法,我們可以使用這些方法在端口 3000 上啟動我們的 HTTP 偵聽器。最后,我們調用第8行中的 bootstrap() 函數。

4. 運行 NestJS 應用

使用 Nest CLI 搭建的項目啟動應用程序所需的一切。我只需執行以下命令簡單地啟動服務器:

$ npm run start

我們應該看到如下輸出:

> [email protected] start /Users/saurabhdashora/NestProjects/demo-project
> nest start

[Nest] 3640  - 07/24/2021, 10:57:51 AM     LOG [NestFactory] Starting Nest application...
[Nest] 3640  - 07/24/2021, 10:57:51 AM     LOG [InstanceLoader] AppModule dependencies initialized +26ms
[Nest] 3640  - 07/24/2021, 10:57:51 AM     LOG [RoutesResolver] AppController {/}: +6ms
[Nest] 3640  - 07/24/2021, 10:57:51 AM     LOG [RouterExplorer] Mapped {/, GET} route +1ms
[Nest] 3640  - 07/24/2021, 10:57:51 AM     LOG [NestApplication] Nest application successfully started +1ms

基本上,該命令會啟動 HTTP 服務器,監聽 main.ts 文件中定義的端口。在我們的例子中,端口是 3000。

應用程序運行后,我們可以訪問瀏覽器并點擊http://localhost:3000。我們將看到Hello World!打印出來 。

5. NestJS 平臺獨立性

NestJS 的目標是與平臺無關。這使得 NestJS 開發人員可以編寫可重用的邏輯。換句話說,在不同類型的應用程序中使用相同的邏輯變得十分容易。

從技術上講,一旦創建了適配器,NestJS 就可以與任何 Node HTTP 框架一起使用。但是,開箱即用,它同時支持expressfastify。開發人員可以選擇適合他們需求的任意一種。

平臺express或express是默認選擇。另一個選項是platform-fastify。Fastify是一個專注于效率的高性能框架。

這兩個平臺都有自己的接口。它們分別被視為NestExpressApplicationNestFastifyApplication

我們可以在 app.create() 調用中配置它們,如下所示:


  1. const app = await NestFactory.create < NestExpressApplication > (AppModule); 

上述方法將NestExpressApplication的特定方法公開為應用程序對象的一部分。但是,如果我們不想訪問特定的方法,則不需要指定類型。

結論

通過本文,我們已經可以了解 NestJS 基礎知識和核心基礎知識。并且安裝 Nest CLI,然后啟動了第一個項目。此外,我們探索了starter文件及其用途,并特別關注了負責啟動應用程序的main.ts文件。

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

原文地址:https://developer.51cto.com/art/202108/678431.htm

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本精品欧洲www | 俄罗斯三级完整版在线观看 | 短篇同学新婚h系列小说 | 日本动漫打扑克动画片樱花动漫 | 五月丁香啪啪. | 激情综合色啪啪小说 | 99国产精品免费观看视频 | 91普通话国产对白在线 | 亚洲福利区 | 好大好硬好深好爽想要吃奶 | 毛片啪啪视频 | 欧美精品久久久久久久影视 | 范冰冰a级一级特级毛片 | 日韩视频一区 | 娇妻被健身教练挺进小说阅读 | 俄罗斯一级淫片 | 亚洲精品91大神在线观看 | 单亲乱l仑在线观看免费观看 | 精品国产成a人在线观看 | 国产精品久久久久久久久 | 好湿好紧太硬了我好爽 | 美女主播免费观看 | 日本人在线看片 | 免费十几分视频 | 国产成人一级 | 欧美日韩国产最新一区二区 | 日韩欧美一区二区三区免费观看 | 免费网站看v片在线香蕉 | 国产精品成人麻豆专区 | 91制片厂 果冻传媒 天美传媒 | 色综合91久久精品中文字幕 | 丁香五香天堂网 | 欧美亚洲高清日韩成人 | 星球大战成人h无删减版 | 国产精品毛片久久久久久久 | 天堂avav| 日本中文字幕在线观看视频 | 欧美一区二区三区免费不卡 | 青草视频在线观看免费网站 | 武侠古典久久亚洲精品 | 国色天香社区视频在线观看免费完整版 |