【发布时间】:2018-10-05 11:00:56
【问题描述】:
我正在使用项目的查询构建器 knex,但是在使用联接时遇到了问题,您必须手动匹配相关数据或执行单独的查询并绑定相关数据,所以我正在考虑使用 ORM但是在某处我听说它们速度较慢,并且在后台使用循环进行查询,我使用 nodejs 以便它可以阻塞线程,因此值得您自己使用 ORM 或更好的 mate join 数据吗?
【问题讨论】:
-
你被一些无关紧要的细节所困扰。您使用 ORM 让您的生活更轻松。如果没有帮助,请确定是否可以添加扩展程序或代码来解决此问题,或者找到没有相同问题的其他 ORM。 Node 的单线程模型在这里不是问题。它是一种非阻塞事件循环设计,只是一种并发方法,但还有很多其他方法。
-
大多数 ORM 都有某种“绕过”模式,用于当事情变得非常激烈并且您需要编写自定义查询时。在认为它无法完成这项工作之前,请阅读您的文档以了解其全部功能。
-
您提出问题的方式,我认为您的 ORM 经验是有限的。有些 ORM 很重,有些则比较轻。对于几乎所有人来说,答案是“这取决于你在做什么”。使用 ORM 很容易请求太多数据;你真的需要为所有项目加载那个子类吗?但是,根据我的经验,ORM 在您没有想到的方面是“沉重的”。 . .他们需要一段时间来学习。您不会只添加一个 ORM 并在一小时内起床。您必须看看 ORM 在项目的整个生命周期中会有多大用处。 . .不要为一个查询添加 ORM。
标签: mysql node.js web orm knex.js