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

本文共 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://tqmjl.baihongyu.com/

你可能感兴趣的文章
Employee的实体类,包括调用DBHelper的方法,含有返回DataTable的方法
查看>>
循环求组合数 组合数打表模板
查看>>
CF981C Useful Decomposition 树 dfs 二十三 *
查看>>
【转载】border:none;与border:0;的区别
查看>>
nodejs 基本问题答疑
查看>>
Journal 2014-Jan-15 (凌晨)
查看>>
Hyperledger Fabric -- gossip 协议
查看>>
判断IE版本
查看>>
dede留言板BUG解决
查看>>
React Fiber源码分析 第一篇
查看>>
10、K最近邻算法
查看>>
laravel入门-01
查看>>
类名:IExternalCommandAvailability+IExternalCommand实现对某些控件的自定义使用
查看>>
Elasticsearch的安装和使用
查看>>
Ajax简介
查看>>
java网络编程笔记
查看>>
结对作业:迷宫小游戏
查看>>
ethereumjs/ethereumjs-icap
查看>>
升级到Windows10
查看>>
转换数据库连接池为hikaricp
查看>>