第一個Nest.js應(yīng)用

一、起步

// nestjs腳手架安裝
npm install -g @nestjs/cli
// 新建一個項目
nest new demo

二、目錄結(jié)構(gòu)

目錄結(jié)構(gòu)

三、程序入口 main.ts

// NestFactory核心類暴露一些靜態(tài)方法用來創(chuàng)建應(yīng)用實例
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  // create 方法返回一個實現(xiàn) INestApplication 接口的對象
  const app = await NestFactory.create(AppModule);
  // 端口號為 3000
  await app.listen(3000);
}
bootstrap();

四、根模塊 app.module.ts

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';

// @Module()裝飾器提供了元數(shù)據(jù),Nest 用它來組織應(yīng)用程序結(jié)構(gòu)
@Module({
  // 由 Nest 注入器實例化的控制器
  controllers: [AppController],
  // 由 Nest 注入器實例化的提供者
  providers: [AppService],
  // 導(dǎo)入模塊的列表,這些模塊導(dǎo)出了此模塊中所需提供者
  imports: [],
  // 由本模塊提供并應(yīng)在其他模塊中可用的提供者的子集 
  exports: []
})
export class AppModule {}

五、提供者 app.serive.ts

import { Injectable } from '@nestjs/common';
// @Injectable() 聲明當前類為提供者 處理業(yè)務(wù)邏輯
@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}

六、控制器 app.controller.ts

import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

// @Controller() 聲明當期類為控制器 接收應(yīng)用程序的特定請求
@Controller()
export class AppController {
  // 依賴注入 AppService
  constructor(private readonly appService: AppService) {}

  // @Get() HTTP請求方法裝飾器
  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}

七、啟動應(yīng)用程序

npm run start
啟動成功

打開瀏覽器訪問 http://localhost:3000 返回 ’Hello World!‘

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容