我有一个API,并试图发送请求。这是有效的,但我注意到,在收到回复后,课程没有被销毁。我现在正在使用nestJS,但当我尝试测试时,nodeJS + expressJS也遇到了这个问题。
我正在使用以下代码:
@Injectable()
export class UsersService {
s = '';
constructor() {}
async findAll(): Promise<any> {
this.s += ' haha ';
return await this.s;
}
}
这第二次返回haha
haha haha
,依此类推。
我不确定这是否是所期望的行为或者可能没有正确配置,因为我现在只是在学习nestJS。我之前曾使用过Zend Framework,但没有显示出这种行为。
任何指导将不胜感激。
谢谢。
随着nest.js 6.0的发布,添加了injection scopes。有了这个,您可以为您的提供商选择以下三个范围之一:
将它添加到@Injectable()
装饰器:
@Injectable({ scope: Scope.REQUEST })
export class UsersService {}
或者在模块定义中为自定义提供程序设置它:
{
provide: 'CACHE_MANAGER',
useClass: CacheManager,
scope: Scope.TRANSIENT,
}
您正在寻找的是请求范围的提供商。在nest v5中不支持它们,请参阅this issue。至于现在,所有提供者都是单身人士。
虽然他们添加了这个pull request,并且将成为nest v6的一部分。使用新版本,我们将获得瞬态和按请求范围。