Node.js ORM 框架 Sequelize 重要更新 v5 发布

栏目: 软件资讯 · 发布时间: 6年前

内容简介:Node.js ORM 框架 Sequelize v5 已正式发布,这也是 v4 推出一年多后的主要版本。 Sequelize 是一个基于 promise 的 Node.js ORM,目前支持 PostgreSQL, MySQL, SQLite 和 Microsoft SQL Server 数据库,它具有强...

Node.js ORM 框架 Sequelize v5 已正式发布,这也是 v4 推出一年多后的主要版本。

Sequelize 是一个基于 promise 的 Node.js ORM,目前支持 PostgreSQL, MySQL, SQLite 和 Microsoft SQL Server 数据库,它具有强大的事务支持、关联关系、读取和复制等功能。Sequelize.js 完全使用 JavaScript 编写,适用于 Node.js 环境。

下面我们不妨看看 v5 版本有哪些值得关注的更新。

首先要说明的是,这是一个重要的版本,但同时也包含了许多不兼容的变化。

重大变更

仅支持 Node v6 及更高版本

从 Sequelize v5 开始,仅支持 Node 6 及更高版本 (#9015)

安全运算符(Secure Operators)

从 v4 版本开始,用户就开始接收到关于“不推荐使用基于字符串的运算符”的弃用警告,也是从那时起就引入了运算符的概念。这些运算符用于防止 HASH 注入攻击。http://docs.sequelizejs.com/manual/querying.html#operators-security

在 v5 版本中

  • 默认启用运算符功能
  • 删除 Op.$raw
  • 仍可通过传入 operators map 至 operatorsAliases 的方式来使用字符串运算符,但会返回弃用警告

改进对 TypeScript 的支持

这也是该版本最值得关注度的更新之一。Sequelize 现在已正式添加对 TypeScript typings 的支持 (#10287)

已被删除的别名

许多常量、对象和类中所调用的原型已被删除,具体如下 (#9372):

Removed in v5 Official Alternative
Sequelize.prototype.Utils Sequelize.Utils
Sequelize.prototype.Promise Sequelize.Promise
Sequelize.prototype.TableHints Sequelize.TableHints
Sequelize.prototype.Op Sequelize.Op
Sequelize.prototype.Transaction Sequelize.Transaction
Sequelize.prototype.Model Sequelize.Model
Sequelize.prototype.Deferrable Sequelize.Deferrable
Sequelize.prototype.Error Sequelize.Error
Sequelize.prototype[error] Sequelize[error]
import Sequelize from 'sequelize';
const sequelize = new Sequelize('postgres://user:password@127.0.0.1:mydb');

/**
 * In v4 you can do this
 */
console.log(sequelize.Op === Sequelize.Op) // logs `true`
console.log(sequelize.UniqueConstraintError === Sequelize.UniqueConstraintError) // logs `true`

Model.findAll({
  where: {
    [sequelize.Op.and]: [ // Using sequelize.Op or Sequelize.Op interchangeably
      {
        name: "Abc"
      },
      {
        age: {
          [Sequelize.Op.gte]: 18
        }
      }
    ]
  }
}).catch(sequelize.ConnectionError, () => {
  console.error('Something wrong with connection?');
});

/**
 * In v5 aliases has been removed from Sequelize prototype
 * You should use Sequelize directly to access Op, Errors etc
 */

Model.findAll({
  where: {
    [Sequelize.Op.and]: [ // Dont use sequelize.Op, use Sequelize.Op instead
      {
        name: "Abc"
      },
      {
        age: {
          [Sequelize.Op.gte]: 18
        }
      }
    ]
  }
}).catch(Sequelize.ConnectionError, () => {
  console.error('Something wrong with connection?');
});

此外,针对不同的数据库也进行了一定程度上的变更,详情请查看发布公告


以上所述就是小编给大家介绍的《Node.js ORM 框架 Sequelize 重要更新 v5 发布》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Linux命令行与shell脚本编程大全 第3版

Linux命令行与shell脚本编程大全 第3版

[美]布鲁姆,布雷斯纳汉 / 门佳、武海峰 / 人民邮电出版社 / 2016-8-1 / CNY 109.00

这是一本关于Linux命令行与shell脚本编程的全方位教程,主要包括四大部分:Linux命令行,shell脚本编程基础,高级shell脚本编程,如何创建实用的shell脚本。本书针对Linux系统的最新特性进行了全面更新,不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料。通过本书的学习,你将轻松写出自己的shell脚本。一起来看看 《Linux命令行与shell脚本编程大全 第3版》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具