nest系列hello-world

21次阅读

共计 1325 个字符,预计需要花费 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 流程图

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…
正文完
 0