首先需要注意的是,之前从@nestjs/common导入的HttpService的方式已被废弃而不可用。
新方式是通过安装@nestjs/axios包来导入所需的模块和服务。 所有 HttpService 的方法都返回一个包裹在 Observable 对象内的 AxiosResponse 。例如get post put等。 通过返回 RxJS observable 流,Nest 路由处理程序将更加强大。 Nest 将自动订阅下面的源并获取最后发出的值(在流完成后)。
下面以一个简单地微信小程序服务端code2session接口为范例
app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { MongooseModule } from '@nestjs/mongoose'
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TodoModule } from './todo/todo.module';
import { HttpModule } from '@nestjs/axios';
@Module({
imports: [
HttpModule,
TodoModule,
ConfigModule.forRoot(),
MongooseModule.forRoot(`mongodb://${new ConfigService().get('DATABASE_HOST')}`)
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule { }
继续阅读“抛弃Promise,Nestjs 使用 Rxjs 来处理异步请求”