欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nest.js系列學習之初識nest項目框架及服務

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

初始化新建一個nest項目

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

文件目錄

.
├── README.md // 說明文件
├── 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 // 開發(fā)源碼文件
│   ├── app.controller.spec.ts
│   ├── app.controller.ts // 控制器路由
│   ├── app.module.ts // 模塊文件
│   ├── app.service.ts // 服務文件
│   └── main.ts // 入口主文件
├── tsconfig.build.json
├── tsconfig.json
└── yarn.lock

啟動nest服務

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

默認啟動的地址是http://localhost:3000頁面上會顯示默認的demo hello word

nest中基礎概念

nest控制器

什么是控制器,控制器負責處理傳入的請求和向客戶端返回響應

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

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

新建一個控制器

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

nest服務

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

新建一個服務

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

nest模塊

模塊是具有 @Module() 裝飾器的類。 @Module() 裝飾器提供了元數(shù)據(jù),Nest 用它來組織應用程序結構,每個 Nest 應用程序至少有一個模塊,即根模塊。根模塊是 Nest 開始安排應用程序樹的地方。事實上,根模塊可能是應用程序中唯一的模塊,特別是當應用程序很小時,但是對于大型程序來說這是沒有意義的。在大多數(shù)情況下,您將擁有多個模塊,每個模塊都有一組緊密相關的功能。

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

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

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

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

exports 由本模塊提供并應在其他模塊中可用的提供者的子集

新建一個模塊

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

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

直接生成一個功能模塊的代碼資源

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

nest的架構和代碼組合方式

nest的代碼是以模塊化的方式組合的,每一塊的功能都可以定義成一個模塊,先從程序的入口文件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();

通過代碼可以看出,通過NestFactory來創(chuàng)建一個應用實例,實例中基于AppModule,然后app運行在3000端口洗,在看下這個模塊是什么

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類通過@Module裝飾器變成一個模塊,整個應用程序就是這樣的一個一個的模塊組成的,然后一個模塊又由一個個的服務和控制器組成,nest的代碼基礎組成方式就是這樣的,然后在去看下控制器和服務

控制器

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

服務

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

以上就是Nest.js系列學習之初識nest項目框架及服務的詳細內(nèi)容,更多關于Nest.js 項目框架服務的資料請關注腳本之家其它相關文章!

以上就是Nest.js系列學習之初識nest項目框架及服務的詳細內(nèi)容,更多關于Nest.js 項目框架服務的資料請關注腳本之家其它相關文章!

相關文章

  • Node.js中看JavaScript的引用

    Node.js中看JavaScript的引用

    這篇文章主要介紹了Node.js中看JavaScript的引用的相關資料,需要的朋友可以參考下
    2017-04-04
  • node實現(xiàn)的爬蟲功能示例

    node實現(xiàn)的爬蟲功能示例

    這篇文章主要介紹了node實現(xiàn)的爬蟲功能,結合實例形式分析了nodejs實現(xiàn)爬蟲功能的步驟與相關操作技巧,需要的朋友可以參考下
    2018-05-05
  • 在Linux上用forever實現(xiàn)Node.js項目自啟動

    在Linux上用forever實現(xiàn)Node.js項目自啟動

    在一臺計算機上手動跑Node項目簡單,node xx.js就搞定了,想讓Node項目后臺運行,雖然不能直接用node命令搞定,但是在安裝了forever這個包以后,還是很輕松的。不過要是在遠程服務器上構建Node項目,如果沒法自啟動,一旦服務器重啟,那就麻煩了。
    2014-07-07
  • Linux Centos7.2下安裝nodejs&npm配置全局路徑的教程

    Linux Centos7.2下安裝nodejs&npm配置全局路徑的教程

    今天小編就為大家分享一篇Linux Centos7.2下安裝nodejs&npm配置全局路徑的教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Node.js 學習筆記之簡介、安裝及配置

    Node.js 學習筆記之簡介、安裝及配置

    本文是Node.js學習筆記系列文章的第一篇,主要給大家講解的是在Windows和Linux上安裝Node.js的方法。軟件安裝版本以0.12.0為例。希望大家能夠喜歡。
    2015-03-03
  • mongoose設置unique不生效問題的解決及如何移除unique的限制

    mongoose設置unique不生效問題的解決及如何移除unique的限制

    這篇文章主要給大家介紹了關于mongoose數(shù)據(jù)庫設置unique不生效問題的解決方法,以及Mongoose如何移除unique限制的方法示例,文中通過示例代碼介紹的非常詳細,需要的朋友們可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-11-11
  • Node中文件斷點續(xù)傳原理和方法總結

    Node中文件斷點續(xù)傳原理和方法總結

    在之前做過一個小項目,涉及到了文件上傳,在大文件上面使用了斷點續(xù)傳,降低了服務器方面的壓力,現(xiàn)在小編把Node中文件斷點續(xù)傳原理和方法總結分享給大家,感興趣的朋友一起看看吧
    2022-01-01
  • 詳細分析Node.js 模塊系統(tǒng)

    詳細分析Node.js 模塊系統(tǒng)

    這篇文章主要介紹了Node.js 模塊系統(tǒng)的的相關資料,文中講解非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2020-06-06
  • 解決npm管理員身份install時出現(xiàn)權限的問題

    解決npm管理員身份install時出現(xiàn)權限的問題

    下面小編就為大家分享一篇解決npm管理員身份install時出現(xiàn)權限的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 從零學習node.js之mysql數(shù)據(jù)庫的操作(五)

    從零學習node.js之mysql數(shù)據(jù)庫的操作(五)

    因為接觸Node.JS已經(jīng)有一段時間了,最近粗略的研究了一下node.js操作數(shù)據(jù)庫的包,覺得node.js連接數(shù)據(jù)庫不錯。下面這篇文章主要給大家介紹了node.js之mysql數(shù)據(jù)庫操作的相關資料,需要的朋友可以參考下。
    2017-02-02

最新評論