Node.js ORM 框架 Sequelize 重要更新 v5 发布
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 发布相关推荐
- Node.js ORM框架-sequelize
Node.js ORM框架-sequelize 什么是ORM 什么是"持久化" 什么是持久层 ORM技术特点 什么是Sequelize Sequelize特点 使用方式 安装库 配 ...
- php sequelize,egg.js整合数据库ORM框架Sequelize
在上篇文章中我们写了egg.js怎么连接mysql数据库, 而在一些较为复杂的应用中,我们可能会需要一个 ORM 框架来帮助我们管理数据层的代码.Java中有Mybatis.Hibernate.Spr ...
- koa+ts+mysql后台开发——(五)使用orm框架sequelize操作数据库,自定义格式校验、统一处理返回信息、分页格式
文章目录 前言 一.引包 二.初始化sequelize 三.添加模型层 四.添加服务层 五.添加控制层 (增删改查) 六.自定义数据校验 七.统一处理返回信息 八.统一处理分页格式 九.在路由中引入导 ...
- Fastify 2.2.0 和 1.14.5 发布,极速 Node.js Web 框架
百度智能云 云生态狂欢季 热门云产品1折起>>> Fastify 2.2.0 和 1.14.5 发布了.Fastify 是一个高度专注于以最少开销和强大的插件架构为开发者提供最佳 ...
- Fastify 2.0.1 和 1.14.3 发布,极速 Node.js Web 框架
开发四年只会写业务代码,分布式高并发都不会还做程序员? Fastify 2.0.1 和 1.14.3 发布了.Fastify 是一个高度专注于以最少开销和强大的插件架构为开发者提供最佳体验的 We ...
- Node.js 后端框架排名
根据 GitHub Star 数量作了个 Node.js 后端框架排名,发布时间以首个版本发布(0.x)为准. 结果如下: 排名 框架名称 star数 语言 首个版本发布时间 查看项目 备注 1 ex ...
- Nodejs ORM框架Sequelize
Nodejs ORM框架Sequelize (模型,关联表,事务,循环,及常见问题) 建立连接 const Sequelize = require('sequelize'); const sequel ...
- 面向前端与未来标准的Node.js Web 框架再进化
Web 开发一直是 Node.js 的主流方向,无论新人必学的 Express / Koa,或者是社区流行的企业级框架 Egg / Nest,各类 Web 框架层出不穷.本次分享来自阿里巴巴前端技术专 ...
- Node.js Web 框架再进化 - 面向前端与未来标准
大厂技术 高级前端 Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 Web 开发一直是 Node.js 的主流方向,无论新人必学的 Express / Koa, ...
最新文章
- html从入门到精通前锋,街篮新手攻略 从入门到精通的心得分享二
- 中国大学MOOC 人工智能导论第五章测试
- 从IC设计来看Trace32的用途
- vue cli3 绑定域名_使用CLI设置WildFly绑定地址并关闭
- java mybatis狂神说sql_狂神说MyBatis01:第一个程序
- INF=0x3f3f3f3f背后的知识
- python求奇数的乘积_Python中的推导式使用详解
- python正则匹配ip地址_python 正则表达式匹配IP地址
- [教程]centos卸载、安装mysql(源码编译安装方式)
- java 枚举 命名规范_JAVA命名规范
- cad统计面积长度插件vlx_cad计算总长度插件下载|
- Java毕业设计-医疗信息管理系统
- IP地址这么重要的知识,居然听一个学弟说没用?
- 万豪酒店品牌持续拓展中国东南区,温州首家万豪酒店开业
- Linux系统简介分区基础命令(ADMIN01-1)
- 狂神说多线程学习笔记整理(二)~JUC并发编程
- Centos查看端口占用
- Knights of the Round Table
- 微信小程序cover-view 标签 中的字被截掉
- 桩身弹性压缩计算公式_【精选】单桩桩身压缩量的分析计算.pdf
热门文章
- HttpInterceptor 拦截器 - 网络请求超时与重试的简单实现
- 【七】jmeter 连接 mysql 数据库(Jmeter 连接数据池)配置:JDBC Connection Configuration
- 研华数据采集卡如何采集压力信号转化为数字信号_我所了解的数据-数据分析-数据产品...
- java chackbox,Java CheckBox.setText方法代码示例
- mysql 子查询 博客_mysql——多表——子查询——示例
- w7设置双显示器_怎么在windows7系统下设置双显示器
- python 托盘_[宜配屋]听图阁
- xbox360无线手柄接收器驱动_创新设计的多模手柄,北通宙斯T6精英机械游戏手柄体验点评...
- 12.15 Ext JS 选人组件
- 计算机硬件技术基础 统计字符串strl中字符'a'的个数,汕头大学工学院830计算机基础综合历年考研真题202p.doc...