最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nest.js系列學(xué)習(xí)之初識(shí)nest項(xiàng)目框架及服務(wù)

 更新時(shí)間:2023年02月14日 09:45:12   作者:water  
這篇文章主要為大家介紹了Nest.js系列學(xué)習(xí)之初識(shí)nest項(xiàng)目框架及服務(wù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

初始化新建一個(gè)nest項(xiàng)目

// 全局安裝nestjs腳手架
npm i -g @nestjs/cli
// 使用腳手架新建項(xiàng)目
nest new project-name

文件目錄

.
├── README.md // 說(shuō)明文件
├── dist // 打包生成的文件
│   ├── app.controller.d.ts
│   ├── app.controller.js
│   ├── app.controller.js.map
│   ├── app.module.d.ts
│   ├── app.module.js
│   ├── app.module.js.map
│   ├── app.service.d.ts
│   ├── app.service.js
│   ├── app.service.js.map
│   ├── common
│   ├── main.d.ts
│   ├── main.js
│   ├── main.js.map
│   ├── modules
│   └── tsconfig.build.tsbuildinfo
├── nest-cli.json // nestjs配置文件
├── package.json // npm 包文件
├── src // 開(kāi)發(fā)源碼文件
│   ├── app.controller.spec.ts
│   ├── app.controller.ts // 控制器路由
│   ├── app.module.ts // 模塊文件
│   ├── app.service.ts // 服務(wù)文件
│   └── main.ts // 入口主文件
├── tsconfig.build.json
├── tsconfig.json
└── yarn.lock

啟動(dòng)nest服務(wù)

yarn start:dev
or
npm run start:dev
[10:01:56 PM] Starting compilation in watch mode...
[10:01:58 PM] Found 0 errors. Watching for file changes.
[Nest] 36861   - 01/31/2023, 10:01:59 PM   [NestFactory] Starting Nest application...
[Nest] 36861   - 01/31/2023, 10:01:59 PM   [InstanceLoader] AppModule dependencies initialized +15ms
[Nest] 36861   - 01/31/2023, 10:01:59 PM   [RoutesResolver] AppController {}: +8ms
[Nest] 36861   - 01/31/2023, 10:01:59 PM   [RouterExplorer] Mapped {, GET} route +3ms
[Nest] 36861   - 01/31/2023, 10:01:59 PM   [NestApplication] Nest application successfully started +2ms

默認(rèn)啟動(dòng)的地址是http://localhost:3000頁(yè)面上會(huì)顯示默認(rèn)的demo hello word

nest中基礎(chǔ)概念

nest控制器

什么是控制器,控制器負(fù)責(zé)處理傳入的請(qǐng)求和向客戶端返回響應(yīng)

控制器的目的是接收應(yīng)用的特定請(qǐng)求。路由機(jī)制控制哪個(gè)控制器接收哪些請(qǐng)求。通常,每個(gè)控制器有多個(gè)路由,不同的路由可以執(zhí)行不同的操作。

為了創(chuàng)建一個(gè)基本的控制器,我們使用類和裝飾器。裝飾器將類與所需的元數(shù)據(jù)相關(guān)聯(lián),并使 Nest 能夠創(chuàng)建路由映射(將請(qǐng)求綁定到相應(yīng)的控制器)。

新建一個(gè)控制器

// 創(chuàng)建控制器 hello
nest g controller hello 
or
nest g co hello

nest服務(wù)

服務(wù)可以是service也可以是provider,都可以通過(guò)constructor注入依賴關(guān)系。服務(wù)本質(zhì)上是一個(gè)@Injectable()裝飾器注解的類,相當(dāng)于mvc中的model層

新建一個(gè)服務(wù)

// 創(chuàng)建服務(wù) hello
nest g service hello
or
nest g s hello

nest模塊

模塊是具有 @Module() 裝飾器的類。 @Module() 裝飾器提供了元數(shù)據(jù),Nest 用它來(lái)組織應(yīng)用程序結(jié)構(gòu),每個(gè) Nest 應(yīng)用程序至少有一個(gè)模塊,即根模塊。根模塊是 Nest 開(kāi)始安排應(yīng)用程序樹(shù)的地方。事實(shí)上,根模塊可能是應(yīng)用程序中唯一的模塊,特別是當(dāng)應(yīng)用程序很小時(shí),但是對(duì)于大型程序來(lái)說(shuō)這是沒(méi)有意義的。在大多數(shù)情況下,您將擁有多個(gè)模塊,每個(gè)模塊都有一組緊密相關(guān)的功能。

@module() 裝飾器接受一個(gè)描述模塊屬性的對(duì)象:

providers 由 Nest 注入器實(shí)例化的提供者,并且可以至少在整個(gè)模塊中共享

controllers 必須創(chuàng)建的一組控制器

imports 導(dǎo)入模塊的列表,這些模塊導(dǎo)出了此模塊中所需提供者

exports 由本模塊提供并應(yīng)在其他模塊中可用的提供者的子集

新建一個(gè)模塊

// 創(chuàng)建模塊 hello
nest g module hello
or
nest g mo hello

每個(gè)模塊都是一個(gè)共享模塊。一旦創(chuàng)建就能被任意模塊重復(fù)使用。

直接生成一個(gè)功能模塊的代碼資源

// 創(chuàng)建一個(gè)功能模塊資源
nest g resource hello
or 
nest g res hello

nest的架構(gòu)和代碼組合方式

nest的代碼是以模塊化的方式組合的,每一塊的功能都可以定義成一個(gè)模塊,先從程序的入口文件main.ts入手

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

通過(guò)代碼可以看出,通過(guò)NestFactory來(lái)創(chuàng)建一個(gè)應(yīng)用實(shí)例,實(shí)例中基于AppModule,然后app運(yùn)行在3000端口洗,在看下這個(gè)模塊是什么

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

AppModule類通過(guò)@Module裝飾器變成一個(gè)模塊,整個(gè)應(yīng)用程序就是這樣的一個(gè)一個(gè)的模塊組成的,然后一個(gè)模塊又由一個(gè)個(gè)的服務(wù)和控制器組成,nest的代碼基礎(chǔ)組成方式就是這樣的,然后在去看下控制器和服務(wù)

控制器

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();
  }
}

服務(wù)

import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}

以上就是Nest.js系列學(xué)習(xí)之初識(shí)nest項(xiàng)目框架及服務(wù)的詳細(xì)內(nèi)容,更多關(guān)于Nest.js 項(xiàng)目框架服務(wù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

以上就是Nest.js系列學(xué)習(xí)之初識(shí)nest項(xiàng)目框架及服務(wù)的詳細(xì)內(nèi)容,更多關(guān)于Nest.js 項(xiàng)目框架服務(wù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一些可能會(huì)用到的Node.js面試題

    一些可能會(huì)用到的Node.js面試題

    這篇文章主要介紹了一些可能會(huì)用到的Node.js面試題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • Node調(diào)用Java的示例代碼

    Node調(diào)用Java的示例代碼

    本篇文章主要介紹了Node調(diào)用Java的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • node.js入門(mén)學(xué)習(xí)之url模塊

    node.js入門(mén)學(xué)習(xí)之url模塊

    最近在學(xué)習(xí)nodejs,知道了如何用nodejs創(chuàng)建一個(gè)簡(jiǎn)單的小項(xiàng)目。例如如何創(chuàng)建一個(gè)服務(wù)器啦,例如http.createServer,還有根據(jù)不同的請(qǐng)求路徑來(lái)設(shè)置路由選擇啦,模塊引入,創(chuàng)建模塊啦,下面這篇文章主要介紹了node.js中url模塊的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • node.js中的console用法總結(jié)

    node.js中的console用法總結(jié)

    這篇文章主要通過(guò)幾個(gè)具體的實(shí)例總結(jié)介紹了node.js中的console用法,需要的朋友可以參考下
    2014-12-12
  • Nodejs Playwright 2Captcha 驗(yàn)證碼識(shí)別實(shí)現(xiàn)自動(dòng)登陸功能

    Nodejs Playwright 2Captcha 驗(yàn)證碼識(shí)別實(shí)現(xiàn)自動(dòng)登陸功能

    日常工作當(dāng)中,為了提高工作效率,我們可能會(huì)寫(xiě)腳本來(lái)自動(dòng)執(zhí)行任務(wù),有些網(wǎng)站因?yàn)樾枰脩舻顷?所以腳本的自動(dòng)登陸功能必不可少,這篇文章主要介紹了Nodejs Playwright 2Captcha 驗(yàn)證碼識(shí)別實(shí)現(xiàn)自動(dòng)登陸功能,需要的朋友可以參考下
    2024-05-05
  • node.js監(jiān)聽(tīng)文件變化的實(shí)現(xiàn)方法

    node.js監(jiān)聽(tīng)文件變化的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于node.js監(jiān)聽(tīng)文件變化的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Node.js的包詳細(xì)介紹

    Node.js的包詳細(xì)介紹

    這篇文章主要介紹了Node.js的包詳細(xì)介紹,Node.js的包是一個(gè)目錄,其中包含JSON格式的包說(shuō)明文件package.json,Node.js的包基本遵循CommonJS規(guī)范,需要的朋友可以參考下
    2015-01-01
  • Node.js重新刷新session過(guò)期時(shí)間的方法

    Node.js重新刷新session過(guò)期時(shí)間的方法

    在Node.js中,我們通常使用express-session這個(gè)包來(lái)使用和管理session,保存服務(wù)端和客戶端瀏覽器之間的會(huì)話狀態(tài)。那如何才能實(shí)現(xiàn)當(dāng)用戶刷新當(dāng)前頁(yè)面或者點(diǎn)擊頁(yè)面上的按鈕時(shí)重新刷新session的過(guò)期時(shí)間呢,接下來(lái)通過(guò)本文一起學(xué)習(xí)吧
    2016-02-02
  • node.js調(diào)用腳本(python/shell)和系統(tǒng)命令

    node.js調(diào)用腳本(python/shell)和系統(tǒng)命令

    這篇文章介紹了node.js調(diào)用腳本(python/shell)和系統(tǒng)命令的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Node.js實(shí)現(xiàn)用戶評(píng)論社區(qū)功能(體驗(yàn)前后端開(kāi)發(fā)的樂(lè)趣)

    Node.js實(shí)現(xiàn)用戶評(píng)論社區(qū)功能(體驗(yàn)前后端開(kāi)發(fā)的樂(lè)趣)

    這篇文章主要介紹了Node.js實(shí)現(xiàn)用戶評(píng)論社區(qū)(體驗(yàn)前后端開(kāi)發(fā)的樂(lè)趣) ,需要的朋友可以參考下
    2019-05-05

最新評(píng)論

晋宁县| 凤阳县| 天柱县| 加查县| 许昌县| 西峡县| 马龙县| 新平| 共和县| 珠海市| 白银市| 淮滨县| 凤冈县| 娱乐| 肃宁县| 南宫市| 恭城| 乾安县| 奉贤区| 江津市| 襄樊市| 望奎县| 广安市| 江永县| 云梦县| 徐州市| 塔河县| 土默特右旗| 尼玛县| 理塘县| 丰都县| 吉水县| 滁州市| 长葛市| 互助| 广灵县| 南溪县| 丹阳市| 酒泉市| 永昌县| 淮滨县|