javascript - JavaScript 中的实体和 DTO
问题描述
我是 JavaScript 世界的新手,我所有的企业经验都围绕 C# 和 .NET。我曾经将 JavaScript 用作某些 Web 应用程序的辅助语言。现在我正在努力提高我在 JavaScript 方面的知识并制作简单的电子应用程序。
在 .NET 中,如果通过 ORM 与 DB 进行交互,通常应用程序会分别具有 DTO 和实体并映射它们,就像我可能看到的用于 Node.js 的相同(基于 Internet 搜索)。但是 Electron 应用程序呢?通过映射使用 DTO 和实体是常见的做法,还是这种方式有点压倒性?
解决方案
我认为 DTO 和电子之间没有联系,因为电子更像你常用的前端应用程序。DTO 用于后端与您的数据库对话。
这是我知道的一些 DTO 库。
SQL
NoSQL
人们使用 DTO 的原因如下:
- 将 DB ResultSet 映射到对象
- 将对象序列化为 JSON 以返回给客户端。
- 简化对象属性验证
- 数据库迁移
第 1 项和第 2 项是必需的。但它不适用于 node.js。
以下是以下原因:
- JavaScript 是动态类型的。
- 使用本机驱动程序 (SQL/NoSQL) 已经在服务器中为您提供 JSON。因此,不需要序列化返回给客户端。
DTO 非常棒,特别是如果您是 node.js 的新手。就个人而言,我不在 node.js 中使用 DTO。主要原因是我不信任 DTO 生成的查询,尤其是复杂的查询。我使用本机驱动程序,并在其上制作工具。我使用 json-schema 来验证对象并生成 typescript 类型定义。
以下是我用来代替 DTO 的工具:
这是一个您可以在不使用 DTO 的情况下查看的示例项目
推荐阅读
- scala - 如果列具有多种格式的日期,则获取特定日期格式的月末日期
- android - 将 Firebase 身份验证用户与 Firebase 数据库相关联
- python - 在函数内的一行中使用双 for 循环
- android - Android NavigationView 阻止选择项目,setCheckedItem 在 onNavigationItemSelected 内部不起作用
- multithreading - 这些解包是必要的吗?
- javascript - JavaScript - 空字符串如何分配变化的值
- asp.net - ASPX SelectParameters 来自 aspx.vb 代码背后
- ruby-on-rails - Rails 应用程序无法搜索 Algolia 索引
- r - mclapply 警告:计划的核心......没有交付结果,所有作业的值都会受到影响
- python - Dedupe python - '记录不符合数据模型'