Node.js/TypeScript 中的存储库模式

编程入门 行业动态 更新时间:2024-10-07 14:30:17

Node.js/TypeScript 中的存储库<a href=https://www.elefans.com/category/jswz/34/1771241.html style=模式"/>

Node.js/TypeScript 中的存储库模式

我一直在尝试在 Node.js 和 Typescript 中实现存储库模式,并取得了一些成功。

但是我在尝试定义创建函数时遇到了困难,该函数应该在我的数据库表中创建一个新行。

我的存储库接口定义如下:

export interface BookRepository {
  create(book: Book): Promise<Book | null>
}

Book是我的领域模型,定义如下:

export type Book = {
  id: number
  name: string
  author: string
}

id 是在 Postgres 中使用自动递增值创建的,因此它不是在我的代码中创建的。

问题是当创建 Book 的新对象时,它需要一个 id 字段。

我该如何解决这个问题?我的 API 中确实需要 id,所以我不能排除它。

回答如下:

一种可能的方法是让编译器知道 id 不是参数的一部分:

export interface BookRepository {
  create(book: Omit<Book, 'id'>): Promise<Book | null>
}

这会保留您设计的类型,但可以放松那里的输入合同。

更多推荐

Node.js/TypeScript 中的存储库模式

本文发布于:2024-05-30 06:54:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770225.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模式   Node   js   TypeScript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!