介绍
在快节奏的开发环境中,每一秒都计算。开发人员面临的最大障碍之一是用于测试和快速原型制作的数据库配置的耗时设置。 Extressots提供了解决此疼痛点的功能:内存DB。
什么是内存DB?
内存DB不仅是另一个功能;这是一个完整的开发环境提供商。它旨在轻松地注射到Expressots依赖注入系统中,它为开发人员提供了有效的内存数据库。
内存中数据库类在表中管理数据,以键值对表示。在这里,关键是表名,值是实体的数组。这个简单而有效的系统使开发人员可以完全内存模拟数据库。这对于快速原型制作,测试和其他设置成熟数据库的情况可能是过分的。
易于与DB检查员进行调试
测试和调试是应用程序开发的重要步骤。 DB Inspector功能通过使用Console.Table将表直接打印到控制台上来提升InmemoryDB类。每当任何端点执行读取或写入数据库的操作时,表内容就会自动打印,从而提供了对数据操作的实时洞察力。
注意:默认情况下启用了DB Inspector,从首次使用时就可以立即提供洞察力。
班级结构和方法
在引擎盖下,inmemorydb的建造是尽可能简单的。
@provideSingleton(InMemoryDB)
class InMemoryDB {
private tables: Record<string, IEntity[]> = {};
// Method definitions ...
}
此装饰器可确保在内存中DB是单身人士,从而在整个应用程序的生命周期中保持数据一致性。
在内存中DB提供以下关键方法:
以其名称检索或初始化表。
getTable(tableName: string): IEntity[]:
打印所有现有表的列表。
showTables(): void;
在特定表中打印所有记录以进行调试目的。
printTable(tableName: string): void:
扩展Baseerepository
集成到您现有的开发工作流程中与扩展BaseerePository类一样简单。例如,实现用于管理用户实体的自定义存储库如下:
@provide(UserRepository)
class UserRepository extends BaseRepository<User> {
constructor() {
super("users");
}
// Custom methods, such as findByEmail, can also be implemented
}
前方的路
展望未来,我们计划为多种类型的数据库提供省点模式,所有这些模式都可以通过我们的CLI很容易造制。因此,请继续关注更多令人兴奋的更新!
结论
内存DB不仅仅是一个功能;这是向更聪明,更有效发展的飞跃。通过提供开箱即用的CRUD和存储库模式以及内存DB,不仅表达速度不仅加快开发过程,而且还可以作为实时指南,甚至在您咨询之前如何完成工作官方文件。
快乐编码!
表达器是MIT许可的开源项目。您的支持是无价的;总是欢迎捐款!