4

1.为什么选择nest

  1. ts,ts是趋势,顺带学习应用
  2. 类似spring
  3. 微服务
  4. 与express,koa对比是企业级的框架,与egg对比更好的支持ts

2. 开始

cnpm i -g @nestjs/cli
nest new nest01
npm run start

2.1 流程图

clipboard.png

2.2 controller.ts

  1. Controller 负责处理传入的请求,并返回相关响应。它内置的路由和获取 HTTP 上下文相关模块,让我们很好的处理业务逻辑,并完成 RESTful 接口。当然,它要其效果,必须要注册到模块的 controllers 属性中去。
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()   //路由:/
  getHello(): string {  //返回值是string
    return this.appService.getHello();  //调用service中的方法
  }
}

2.3 module.ts

  1. Module 这个组件起到将各个模块组织在一起的作用,Nest 应用程序也必须有一个 Module 模块。
  2. 几乎所有的组件模块都可以认为是 Provider:service, repository, factory, helper 等等。他们都可以通过构造函数 constructor 注入依赖关系。Provider 可以说是 Controller 的辅助模块,它可以帮助你连接数据库、获取缓存数据、公共数据处理模块等等。当然,他也需要注册到模块的 providers 属性中去。
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { ProductsController } from './products.controller';
import { UserController } from './controller/admin/user';
import { AppService } from './app.service';

@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

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

3. 参考

  1. https://www.bilibili.com/vide...
  2. https://www.jianshu.com/p/4e0...

渣渣辉
1.3k 声望147 粉丝