日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
NestJS的基礎(chǔ)知識(shí)和核心基礎(chǔ)

介紹

NestJS是個(gè)相對(duì)較新的框架,使用NodeJS開發(fā)后端應(yīng)用程序變得容易。并且,NestJS正在逐漸被越來越多的用戶使用。

在這篇文章中,我們將了解構(gòu)成這個(gè)框架主干的NestJS 基礎(chǔ)知識(shí)和核心基礎(chǔ)知識(shí)。為了更好地理解 NestJS 基礎(chǔ)知識(shí),將使用 Nest CLI 引導(dǎo)一個(gè)入門應(yīng)用程序。

1. 語言

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

由于 NestJS 具有靈活性,可以根據(jù)開發(fā)團(tuán)隊(duì)的需要和專業(yè)知識(shí)使用Typescript或Javascript。然而,NestJS 的創(chuàng)建者似乎更傾向于使用 Typescript。

2. 設(shè)置 NestJS

NestJS 需要 NodeJS 和 NPM 作為先決條件。因此,在進(jìn)行下一步操作之前,請(qǐng)確保兩者都存在于您的系統(tǒng)中。

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

一旦安裝了 NodeJS,啟動(dòng)一個(gè)新的 NestJS 項(xiàng)目就非常簡(jiǎn)單了。我們首先需要使用以下命令安裝 NestJS CLI。

$ npm i -g @nestjs/cli

在這里,我們將在全球范圍內(nèi)安裝 NestJS CLI。如果您遇到一些與權(quán)限相關(guān)的問題,請(qǐng)參閱本文。

接下來,我們可以使用 Nest CLI 創(chuàng)建一個(gè)新項(xiàng)目。

$ nest new demo-project

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

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 核心文件

以下是核心文件的簡(jiǎn)要概述:

app.controller.ts這是一個(gè)帶有單一路由的最小控制器
app.controller.spec.ts此文件包含控制器的單元測(cè)試
app.module.ts應(yīng)用程序的根模塊
應(yīng)用服務(wù).ts具有單一方法的基本服務(wù)
主文件使用核心 NestFactory 函數(shù)的應(yīng)用程序的入口文件?;旧?,這負(fù)責(zé)啟動(dòng)應(yīng)用程序?qū)嵗?/td>

讓我們更詳細(xì)地了解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 核心包中導(dǎo)入NestFactory函數(shù)。

NestFactory 公開了一些靜態(tài)方法,我們可以使用create() 方法,創(chuàng)建一個(gè)應(yīng)用程序?qū)嵗?。為此,我們?dǎo)入 AppModule 并將其傳遞給create()調(diào)用。請(qǐng)參閱第 5 行。

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

4. 運(yùn)行 NestJS 應(yīng)用

使用 Nest CLI 搭建的項(xiàng)目啟動(dòng)應(yīng)用程序所需的一切。我只需執(zhí)行以下命令簡(jiǎn)單地啟動(dòng)服務(wù)器:

$ npm run start

我們應(yīng)該看到如下輸出:

> demo-project@0.0.1 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

基本上,該命令會(huì)啟動(dòng) HTTP 服務(wù)器,監(jiān)聽 main.ts 文件中定義的端口。在我們的例子中,端口是 3000。

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

5. NestJS 平臺(tái)獨(dú)立性

NestJS 的目標(biāo)是與平臺(tái)無關(guān)。這使得 NestJS 開發(fā)人員可以編寫可重用的邏輯。換句話說,在不同類型的應(yīng)用程序中使用相同的邏輯變得十分容易。

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

平臺(tái)express或express是默認(rèn)選擇。另一個(gè)選項(xiàng)是platform-fastify。Fastify是一個(gè)專注于效率的高性能框架。

這兩個(gè)平臺(tái)都有自己的接口。它們分別被視為NestExpressApplicationNestFastifyApplication。

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

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

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

結(jié)論 

通過本文,我們已經(jīng)可以了解 NestJS 基礎(chǔ)知識(shí)和核心基礎(chǔ)知識(shí)。并且安裝 Nest CLI,然后啟動(dòng)了第一個(gè)項(xiàng)目。此外,我們探索了starter文件及其用途,并特別關(guān)注了負(fù)責(zé)啟動(dòng)應(yīng)用程序的main.ts文件。

【譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為.com】


分享名稱:NestJS的基礎(chǔ)知識(shí)和核心基礎(chǔ)
文章轉(zhuǎn)載:http://www.5511xx.com/article/cccgihg.html