typescript - 使用普通的旧 Typescript 类实现存储库模式
问题描述
我目前有一个具有 Typescript 类的 Node 应用程序,如下所示:
class Client{
private _id : string;
public get id() {
return this._id;
}
public set id(newId) {
if isValidId(newId) {
this._id = newId;
}
}
private _orders : Array<Order>;
public get orders(){
return this._orders;
}
public addOrder = (newOrder : Order) => this._orders.push(newOrder);
private isValidId = (id: string) => {
//Some validation logic;
return true;
}
constructor (id) {
this._id = id;
this._orders = new Array<Order>();
}
}
client Order{
private _id : string;
public get id() {
return this._id;
}
private _item : string;
public get item() {
return this._item;
}
public doSomething = () => {
//some things are done;
}
constructor(id : string, item : string){
this._id = id;
this._item = item;
}
}
这适用于内存,但对于持久存储,我必须使用像 MongoDB 或 Postgresql 这样的数据库。现在,我的问题是,如何将我当前的模型转化为可以与数据库一起使用的模型?例如,我目前可以使用someClient.orders
. 这不适用于数据库。那么,我该如何设计一个与 DB 一起工作的模型呢?我是否放弃了所有当前的模型并从头开始使用 ORM?由于我已经有一个工作的业务层,我非常想扩展当前代码以使用数据库。
解决方案
推荐阅读
- javascript - Vuetify中展开的v-data-table折叠时触发方法
- math - 基于不相等数量的离散观察的排名
- svelte - 如果不生产,则添加苗条的组件
- node.js - 如何使用“Flat Json”-Bootstrap 5 Table 示例与 ejs + nodejs + expressjs
- keras - 如何创建自定义 keras 生成器以适应多个输出并使用工作人员
- react-native - 如何在 cljs 中使用反应导航?
- javascript - 如何从对象数组中检索电子邮件字段?
- java - 如何为我的 Web 服务获取 HTML 数据表单?
- php - 替换functions.php里面wordpress父主题的一个函数
- sql - 在 netezza 中使用“创建外部表”命令时无法获取别名