kir*_*403 8 dependency-injection helper node.js typescript nestjs
我正在学习 Nest.js 并使用它创建一个 api。然而,我陷入了问题之一,即定义常量和辅助函数。
与所有 API 一样,我有一些具有分页功能的 API,我想在全局级别为所有模块定义默认页面大小。然而,此时我很困惑应该走什么路。对于配置,我创建了一个AppConfigModule
提供 4 个环境变量的配置:
// app-config.service.ts
import { Injectable } from '@nestjs/common'
import { ConfigService } from '@nestjs/config'
@Injectable()
export class AppConfigService {
constructor(private configService: ConfigService) {}
get DB_HOST(): string {
return this.configService.get<string>('DATABASE_HOST')
}
get DB_PORT(): string {
return this.configService.get<string>('DATABASE_PORT')
}
get DB_NAME(): string {
return this.configService.get<string>('DATABASE_NAME')
}
get DB_MONGO(): string {
return `mongodb://${this.DB_HOST}:${this.DB_PORT}/${this.DB_NAME}`
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我必须使用不依赖于环境的常量(例如 DEFAULT_PAGE_SIZE)时,我应该在哪里定义它?
AppConfigService
和with在同一个班级static readonly DEFAULT_PAGE_SIZE = 10
AppConstantsService
并将该服务注入到我们需要使用它的构造函数中?export class AppConstants { static readonly DEFAULT_PAGINATION = 10 }
当我考虑定义辅助函数时遇到同样的问题。有多种方法,我无法为 Nest js 找到更好的清晰方法。途径可以包括:
创建helpers.ts
导出静态函数的文件:export const getDate = () => logger.log('Hi')
使用新模块创建AppUtilService
并在需要使用它时将其注入构造函数中?
我对 Nest.js 架构的方法有点困惑。有人可以帮忙吗?
提前致谢。
是的,您可以将常量作为简单属性添加到类中,这将帮助您将所有常量保留在一个位置,关于辅助函数,我建议您创建一个 utils 文件夹并为每组函数添加一个模块。
IE
根/ utils / 日期 - > 日期.module.ts , 日期.service.ts
在dates.service.ts中,您可以添加与日期操作相关的每个辅助函数,请记住在dates.module.ts上导出提供程序
归档时间: |
|
查看次数: |
23873 次 |
最近记录: |