博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js ORM 框架 Sequelize 重要更新 v5 发布
阅读量:5806 次
发布时间:2019-06-18

本文共 2138 字,大约阅读时间需要 7 分钟。

  hot3.png

,这也是 v4 推出一年多后的主要版本。

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

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

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

重大变更

仅支持 Node v6 及更高版本

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

安全运算符(Secure Operators)

从 v4 版本开始,用户就开始接收到关于“不推荐使用基于字符串的运算符”的弃用警告,也是从那时起就引入了运算符的概念。这些运算符用于防止 HASH 注入攻击。

在 v5 版本中

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

改进对 TypeScript 的支持

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

已被删除的别名

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

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?');});

此外,针对不同的数据库也进行了一定程度上的变更,。

转载地址:http://kgubx.baihongyu.com/

你可能感兴趣的文章
通过vb.net 和NPOI实现对excel的读操作
查看>>
TCP segmentation offload
查看>>
java数据类型
查看>>
数据结构——串的朴素模式和KMP匹配算法
查看>>
FreeMarker-Built-ins for strings
查看>>
验证DataGridView控件的数据输入
查看>>
POJ1033
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
一维数组
查看>>
Linux学习笔记之三
查看>>
关于Android studio团队协同开发连接到已有项目
查看>>
Sql获取表的信息
查看>>
Java-大数据-图汇集
查看>>
一、数论算法
查看>>
Asp.net MVC 中Controller的返回类型大全
查看>>
用一条SQL语句实现斐波那契数列
查看>>
[高中作文赏析]跋涉与成功
查看>>
swift-辞典NSDictionary定义,变化的关键,删/加入关键
查看>>
python----slots属性安全类
查看>>
《Programming WPF》翻译 第5章 1.不使用样式
查看>>