基于性能,稳定性和ES8 +支持的Knex与MySQL2

问题描述 投票:2回答:1

[DB2图书馆knexknex是否有人有实践经验?

<<

到目前为止,我清楚地看到,使用mysql2而不是mysql2的唯一真正优势是它对MSSQL,MySQL,PostgreSQL,SQLite3和Oracle的普遍支持,而后者仅支持MySQL,但是由于目前我仅关注MySQL,此NPMCompare的功能似乎不太重要。

我会考虑的参数:

    性能和负载电阻;
  • 稳定性(生产就绪);
  • 本机ES8 +支持(无回叫,没有额外的knex包装器,knex支持;]
  • 简短明了,详细程度越低越好。
  • 有人对knex和mysql2这两个数据库库都有实践经验吗?经过一番谷歌搜索后(例如在NPMCompare),我仍然很好奇,根据实际经验,知道什么是优点和...

    我在主项目上使用knex,我认为您正在尝试将苹果与橙子进行比较,因为Knex是一个下划线的查询生成器,使用(mysql2)作为传输库(在使用MySql的情况下。) >

    我在Knex中看到的好处是:
    通过

    默认

    防止SQL注入。

    让您

      构建查询非常轻松,无需付出很多努力
    1. 让您撰写查询就像编写javascript函数一样(我认为这是一个很大的优势)。
    2. 由于我认为#3具有如此大的优势,因此最好对其进行演示:
    3. 认为您有2个端点
    4. mysql2-应该返回用户列表(mysql2
    5. knex-假设返回具有

      the same

    结构的单个用户。
      您可以这样实现。
    1. knex
    2. 看看Util.promisify如何重用相同的查询(可能确实很复杂),而只是“添加”它所需要的限制。
    3. 在性能方面,我认为这种抽象没有太大的代价,(我尚未注意到任何性能问题)

    我不确定您将稳定性称为什么,但是Knex具有非常酷的TS支持,可以使您的查询成为强类型。

    Util.promisify

    [结合使用ESM/MJS从数据库自动生成这些数据库类型,这使得工作和重构变得更好。

    从ES6开始,Knex默认支持Promises&回调,因此您可以选择适合自己的任何选项。

    [我正在使用的其他很酷的功能是在大小写之间自动转换,我的数据库在表和列名方面具有蛇形样式,但是在我的节点上,我使用/users/list插件处理了驼峰式大小写。

    {id, name},允许您定义如何使用代码构建/升级架构,这可以帮助您从CI自动更新生产架构。

    Mysql2是数据库上方的低级驱动程序。

  • node.js orm database-connection knex.js node-mysql2
    1个回答
    1
    投票
    通过

    默认

    防止SQL注入。
    © www.soinside.com 2019 - 2024. All rights reserved.