Is there a way to use static method with dependency injection in NestJS?(有没有办法在NestJS中使用带有依赖注入的静电方法?)
本文介绍了有没有办法在NestJS中使用带有依赖注入的静电方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
举例胜过长篇大论:
// Backery.service.ts
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Backery } from './Backery.entity';
@Injectable()
export class BackeryService {
constructor(
@InjectRepository(Backery)
private readonly backeryRepository: Repository<Backery>,
) {}
static myStaticMethodToGetPrice() {
return 1;
}
otherMethod() {
this.backeryRepository.find();
/* ... */
}
}
// Backery.resolver.ts
import { Bakery } from './Bakery.entity';
import { BakeryService } from './Bakery.service';
@Resolver(() => Bakery)
export class BakeryResolver {
constructor() {}
@ResolveField('price', () => Number)
async getPrice(): Promise<number> {
return BakeryService.myStaticMethodToGetPrice(); // No dependency injection here :(
}
}
如何替换BakeryService.myStaticMethodToGetPrice()以使用依赖项注入,以便轻松进行测试,例如?
推荐答案
静电方法不能使用依赖注入。这是因为依赖项注入(至少到Nest)的想法是注入依赖项的实例,以便以后可以利用它们。
您拥有的代码是有效的,因为它将像静电方法所说的那样返回值1,但是静电方法不能使用注入的任何实例值。您会发现大多数其他依赖注入框架都遵循这种逻辑。
这篇关于有没有办法在NestJS中使用带有依赖注入的静电方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:有没有办法在NestJS中使用带有依赖注入的静电方法?
基础教程推荐
猜你喜欢
- 逻辑运算符 ||在 javascript 中,0 代表 Boolean false? 2022-01-01
- HTML5 画布调整为父级 2022-01-01
- 最佳动态 JavaScript/JQuery 网格 2022-01-01
- 带角度的选项卡:仅使用 $http 在单击时加载选项卡 2022-01-01
- CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符 2022-01-01
- 从快速中间件中排除路由 2022-01-01
- 使用 jQuery 在悬停时交换 DIV 类 2022-01-01
- 在 Javascript 中使用 Fetch API 上传文件并显示进度 2022-01-01
- 即使每次插入第一个输入的值不同,第二个输入仍显示相同的输入值 2022-01-01
- 当木偶师打开Chrome时,不能使用Chrome扩展 2022-01-01
