第一个Nest.js应用

一、起步

// nestjs脚手架安装
npm install -g @nestjs/cli
// 新建一个项目
nest new demo

二、目录结构

目录结构

三、程序入口 main.ts

// NestFactory核心类暴露一些静态方法用来创建应用实例
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  // create 方法返回一个实现 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()装饰器提供了元数据,Nest 用它来组织应用程序结构
@Module({
  // 由 Nest 注入器实例化的控制器
  controllers: [AppController],
  // 由 Nest 注入器实例化的提供者
  providers: [AppService],
  // 导入模块的列表,这些模块导出了此模块中所需提供者
  imports: [],
  // 由本模块提供并应在其他模块中可用的提供者的子集 
  exports: []
})
export class AppModule {}

五、提供者 app.serive.ts

import { Injectable } from '@nestjs/common';
// @Injectable() 声明当前类为提供者 处理业务逻辑
@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}

六、控制器 app.controller.ts

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

// @Controller() 声明当期类为控制器 接收应用程序的特定请求
@Controller()
export class AppController {
  // 依赖注入 AppService
  constructor(private readonly appService: AppService) {}

  // @Get() HTTP请求方法装饰器
  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}

七、启动应用程序

npm run start
启动成功

打开浏览器访问 http://localhost:3000 返回 ’Hello World!‘

你可能感兴趣的:(第一个Nest.js应用)