javascript - 错误:Nest 无法解析 AwsSnsService (?) 的依赖项
问题描述
我正在尝试将服务从一个模块注入另一个模块。我不断得到
Error: Nest can't resolve dependencies of the AwsSnsService (?). Please make sure that the argument function() {\n if (klass !== Object) {\n return klass.apply(this, arguments);\n }\n } at index [0] is available in the AwsModule context.
下面是代码
aws-sns.service.ts
@Injectable()
export class AwsSnsService {
constructor(private readonly awsSNS: AWS.SNS) {}
}
aws.module.ts
import { Module } from '@nestjs/common';
import { AwsSnsService } from './aws-sns.service';
@Module({
providers: [AwsSnsService],
exports: [AwsSnsService],
})
export class AwsModule {}
我想在我的用户模块中使用 AwsSnsService。我正在按照以下方式进行操作
@Module({
imports: [
SomeOtherModule,
AwsModule,
],
providers: [UserService, UserDevicePushTokensService],
exports: [UserService, UserDevicePushTokensService],
})
export class UserModule {}
@Injectable()
export class UserDevicePushTokensService {
constructor(private readonly awsSnsService: AwsSnsService) {}
}
在我看来,这些点以正确的方式连接起来。我仍然没有弄清楚。
解决方案
您必须在 AwsSnsService 中解决 AWS.SNS 的依赖关系
以我的 s3 为例,SNS 和任何服务都一样:
s3.provider.ts
export const s3Providers: Provider = {
provide: S3_PROVIDER_KEY,
useFactory: async (): Promise<S3> => {
return new S3({
accessKeyId: "Key",
secretAccessKey: "AccessKey",
});
},
};
s3.service.ts
@Injectable()
export class S3Service {
constructor(
@Inject(S3_PROVIDER_KEY)
private readonly s3: S3) {}
}
你可以在这里阅读更多
推荐阅读
- python-3.x - 使用 mod_wsgi 托管的烧瓶应用程序作为外部进程发送到在 gunicorn 上运行的 Flask-SocketIO 服务器和 eventlet worker
- c# - 如何通过 ASP.Net Web API 通过 Memory Stream 将文件读取到 S3
- javascript - 如何一起使用 node-sass 和 sass-autoprefixer?
- sql - 如何将列转换为行条件
- c++ - C++ 为 For 循环中的结构返回相同的引用
- javascript - 浏览器窗口不会用 window.location 重新加载?路由器问题?
- html - 谷歌 SEO 标题和元描述
- networking - 创建6in4服务器,但客户端无法正常上网
- php - 如何仅导出 Wordpress 帖子、评论、页面和媒体文件?
- javascript - ReactJS 中的多个上下文