【发布时间】:2021-04-06 03:06:52
【问题描述】:
我有一个 NestJS 应用程序,其中我有一些关于使用 AWS S3 存储桶的逻辑。
我有一个模块,其中包含一个带有promiseWrapper 函数的服务,用于将回调转换为异步。
private s3PromiseWrapper(action: string, params: S3ParamGetDTO): Promise<string> {
console.log(params)
return new Promise((resolve, reject) => {
this.s3.getSignedUrl(
action,
{
Bucket: params.bucketName,
Key: params.key,
Expires: params.expirationTimeSeconds,
},
(err: any, url: string) => {
if (err) reject(err)
resolve(url)
}
)
})
没有另一个模块,需要使用相同的函数,所以不要重复我想创建一个全局函数作为util函数的代码,但这需要我将实例作为参数传递给函数.
private s3PromiseWrapper(action: string, params: S3ParamGetDTO, s3Instance: S3): Promise<string> {
console.log(params)
return new Promise((resolve, reject) => {
s3Instance.getSignedUrl(
action,
{
Bucket: params.bucketName,
Key: params.key,
Expires: params.expirationTimeSeconds,
},
(err: any, url: string) => {
if (err) reject(err)
resolve(url)
}
)
})
从依赖注入的角度来看,这是反模式吗?
【问题讨论】:
-
为什么不直接使用
S3.getSignedUrlPromise方法呢?
标签: node.js amazon-s3 design-patterns dependency-injection nestjs