小编Tah*_*gun的帖子

NestJS 在非模块文件中注入模块服务

我有一个用于视图渲染的函数文件,我想在这里使用 nestjs 模块服务。我的渲染文件是这样的。

export default {
  parse() { }
  render() { }
}
Run Code Online (Sandbox Code Playgroud)

所以要在这里使用模块服务,我尝试像这样注入。

import { Inject } from '@nestjs/common';
import { MemberService } from './member.service';

class SampleClass {
  constructor(@Inject('MemberService') private readonly memberService: MemberService) {}
}

// Creating class in here to use in functions
const sampleService = new SampleClass();

export default {
  parse() { }
  render() { }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试在这里创建新类时出现错误“预期有 1 个参数但得到 0”

我的会员服务是这样的

@Injectable()
export class MemberService {
  constructor(@Inject(Constants.RelationshipMemberModel) private readonly relationshipMemberModel: typeof Model) {}
  login () {} …
Run Code Online (Sandbox Code Playgroud)

javascript dependency-injection typescript inversifyjs nestjs

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

NestJS 访问管道中的响应对象

我正在使用管道进行请求验证。如果请求失败,我想重定向页面但不想抛出错误。问题是如何在验证中访问响应对象。

这是我的验证管道。

@Injectable()
export class ValidationPipe implements PipeTransform<any> {
  async transform(value: any, { metatype }: ArgumentMetadata) {
    if (!metatype || !this.toValidate(metatype)) {
      return value;
    }
    const object = plainToClass(metatype, value);
    const errors = await validate(object);
    if (errors.length > 0) {
     // in here i need to response with res.redirect('') function
      throw new BadRequestException('Validation failed');
    }
    return value;
  }
  private toValidate(metatype: Function): boolean {
    const types: Function[] = [String, Boolean, Number, Array, Object];
    return !types.includes(metatype);
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要访问 res.redirect() 函数而不是抛出异常

node.js typescript nestjs

4
推荐指数
1
解决办法
2042
查看次数