我已经在一个应用程序上工作了几个月,而且我开始怀疑我当前的后端体系结构。我正在使用Typescript,猫鼬和routing-controllers构建后端。
我有一个控制器来处理请求并将其传递到存储库。我有两种类型的存储库。普通存储库(控制器与之交互)和模型存储库(与猫鼬模型交互)。
我还为猫鼬模型定义了一些接口。假设我有一个用户:
export interface User {
firstName: string;
lastName: string;
}
export interface UserModel extends User, Document {
}
创建模型后,它将使用UserModel。
现在我的问题是:
1)这是使用nodejs的正确方法吗?
2)在向模型存储库发出请求时,应该返回User
接口还是UserModel
接口?
目前我是这样使用的
public async getUserById(userId: string): Promise<UserModel> {
return this.userModel.findById(userId);
}
然后普通存储库返回User
接口的对象。