node.js - 如何将凭据传递给我的数据库连接类?
问题描述
我正在为大学项目构建小型 API,并且正在使用 NodeJS。在这种情况下,我使用的技术并不重要,问题更普遍。我有以下一组文件和类: Index.js 创建 RequestHandler 类的实例。RequestHandler 实例作为 PropertiesStorage 类的实例。最后,PropertiesStorage 有一个 DatabaseAccessor 的实例。
所有这些类都是我自己创建的,我想创建一些逻辑抽象层,我认为这是一种推荐的方法。DatabasaAccessor 使用数据库的提供者 SDK。这个 SDK 需要一些凭据(数据库 ID 等),所以我需要以某种方式将这些凭据传递给 DatabaseAccessor。我看到了两种解决方案,但我认为两者都不完美。凭证存储在 config.js 文件中。我的想法: 1. 在 DatabaseAccessor 中加载 config.js - 这似乎是一个很好的解决方案,但是 DatabaseAccessor 变得有点过于依赖这个文件的位置和结构,我认为这个类应该更可重用, 2.传递从 index.js 开始并以 DatabaseAccessor 结束的凭据(通过我的每个类的构造函数) - 我不喜欢这样,因为中间类与我的数据库实现紧密相连。同样,我希望每个类都是可重用的,即使我将来更改我的数据库提供程序或类型。我想要一个像 IDatabaseAccessor 这样的接口,并且它的每个实现都可能有一组不同的凭据。
你能给我什么建议?在这种情况下,我真的很想学习好的做法。我试图在互联网上找到一些解决方案,但我只发现了一些关于向 Jenkins 注入凭据的问题(我什至不知道它是什么)。
解决方案
推荐阅读
- python - 将缺少的时间戳行添加到数据框中
- javascript - 如何在表单提交时调用多个文件
- javascript - 如何使正则表达式只接受特殊公式?
- angular - 如何将搜索数据绑定到角度表
- algorithm - 用FFT求解n位串的汉明距离?
- python - 如何通过 HDMI 将 Python 线图输出发送到另一台显示器?
- javascript - 通过 react 中的特定 id 启用和禁用 onClick() 功能
- visual-studio-code - 如何使“按位置排序”成为大纲视图中的默认选项?
- reactjs - 找不到模块“@babel/helper-regex”需要堆栈
- git - 使用漂亮格式时如何为合并提交着色?