相关疑难解决方法(0)

nestjs 拦截和修改传出的 http 请求

所以我很可能错过了什么或做错了什么。我有一个 NestJS 应用程序,它试图向外部 API 发出 http 请求。我希望能够在执行它之前拦截这个传出请求并修改它的标头。

我试过使用拦截器无济于事,传入的http请求被拦截,但传出的请求没有被拦截。任何建议或帮助将不胜感激。

http typescript nestjs

8
推荐指数
2
解决办法
2万
查看次数

NestJS 拦截器:无法在传出请求上设置 HTTP 标头

我正在 NestJS 中编写 API,其中有一组通用标头。我决定使用拦截器将标头附加到传出请求中。标头不会附加到请求中,因此请求不断失败。

拦截器

import * as utils from '../utils/utils';
import {
  CallHandler,
  ExecutionContext,
  Injectable,
  NestInterceptor
} from '@nestjs/common';
import { HEADERS } from '../middlewares/headers.constant';
import { Observable } from 'rxjs';
import { Request } from 'express';
import { DATA_PARTITION_ID } from '../app.constants';

@Injectable()
export class HeadersInterceptor implements NestInterceptor {
  intercept(context: ExecutionContext, next: CallHandler): Observable<void> {
    const ctx = context.switchToHttp();
    const request: Request = ctx.getRequest();

    this.setHeaders(request);

    return next.handle();
  }

  private setHeaders(request): void {
    this.updateHeaders(request, HEADERS.ACCEPT, 'application/json');
    this.updateHeaders(request, HEADERS.CONTENT_TYPE, 'application/json'); …
Run Code Online (Sandbox Code Playgroud)

interceptor node.js express typescript nestjs

6
推荐指数
1
解决办法
2万
查看次数

在 init 上运行程序

我会创建一个程序(脚本),当它运行时启动动作,所以我没有在这个程序中使用路由

我正在使用NestJS 框架(要求)。

实际上,我正在尝试将代码写入main.ts文件并使用我的方法导入服务。

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import {AppService} from './app.service'
import { TreeChildren } from 'typeorm';
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
let appService: AppService; <- can't use appService methods
this.appService.
bootstrap();
Run Code Online (Sandbox Code Playgroud)

我的服务

@Injectable()
export class AppService {
  constructor(
    @InjectRepository(File) private readonly fileRepository: Repository<File>,
  ) {}

  async getTypes(): Promise<File[]> {
    return await this.fileRepository.find();
  }
}
Run Code Online (Sandbox Code Playgroud)

我会使用服务来处理我的操作,所以我会使用 DI,它在非​​类文件中不起作用。

我会知道如何以适当的方式在初始化时运行我的操作

javascript dependency-injection node.js typescript nestjs

5
推荐指数
1
解决办法
7716
查看次数