Sequelize 是一个基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 预读和延迟加载,读取复制等功能.

Sequelize 遵从 语义版本控制. 支持 Node v10 及更高版本以便使用 ES6 功能.

Getting Started - Sequelize入门

在本教程中,你将进行学习 Sequelize 的简单设置.

安装

Sequelize 的使用可以通过 npm (或 yarn).

npm install --save sequelize

你还必须手动为所选数据库安装驱动程序:

# 选择以下之一:
$ npm install --save pg pg-hstore # Postgres
$ npm install --save mysql2
$ npm install --save mariadb
$ npm install --save sqlite3
$ npm install --save tedious # Microsoft SQL Server

连接到数据库

要连接到数据库,必须创建一个 Sequelize 实例. 这可以通过将连接参数分别传递到 Sequelize 构造函数或通过传递一个连接 URI 来完成:

const { Sequelize } = require('sequelize');// 方法 1: 传递一个连接 URI
const sequelize = new Sequelize('sqlite::memory:') // Sqlite 示例
const sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname') // Postgres 示例// 方法 2: 分别传递参数 (sqlite)
const sequelize = new Sequelize({dialect: 'sqlite',storage: 'path/to/database.sqlite'
});// 方法 2: 分别传递参数 (其它数据库)
const sequelize = new Sequelize('database', 'username', 'password', {host: 'localhost',dialect: /* 选择 'mysql' | 'mariadb' | 'postgres' | 'mssql' 其一 */
});

Sequelize 构造函数接受很多参数. 它们记录在 API 参考中.

测试连接

你可以使用 .authenticate() 函数测试连接是否正常:

try {await sequelize.authenticate();console.log('Connection has been established successfully.');
} catch (error) {console.error('Unable to connect to the database:', error);
}

关闭连接

默认情况下,Sequelize 将保持连接打开状态,并对所有查询使用相同的连接. 如果你需要关闭连接,请调用 sequelize.close()(这是异步的并返回一个 Promise).

术语约定

请注意,在上面的示例中,Sequelize 是指库本身,而 sequelize 是指 Sequelize 的实例,它表示与一个数据库的连接. 这是官方推荐的约定,在整个文档中都将遵循.

阅读文档的提示

我们鼓励你在阅读 Sequelize 文档时在本地运行代码示例. 这将帮助你更快地学习. 最简单的方法是使用 SQLite 方言:

const { Sequelize, Op, Model, DataTypes } = require("sequelize");
const sequelize = new Sequelize("sqlite::memory:");// 这是代码! 它是可用的!

要尝试使用在本地难以设置的其他方言,可以使用 Sequelize SSCCE GitHub 存储库,该库可让你在所有受支持的方言上运行代码, 直接从 GitHub 免费获得,无需任何设置!

新数据库与现有数据库

如果你是从头开始一个项目,且你的数据库尚不存在,那么一开始就可以使用 Sequelize,以便自动创建数据库中的每个表.

除此之外,如果你想使用 Sequelize 连接到已经充满了表和数据的数据库,那也可以正常工作! 在两种情况下,Sequelize 都能满足你的要求.

记录日志

默认情况下,Sequelize 将记录控制台执行的每个SQL查询. 可以使用 options.logging 参数来自定义每次 Sequelize 记录某些内容时将执行的函数. 默认值为 console.log,使用该值时仅显示日志函数调用的第一个参数. 例如,对于查询日志记录,第一个参数是原始查询,第二个参数(默认情况下是隐藏的)是 Sequelize 对象.

options.logging 的常用值:

const sequelize = new Sequelize('sqlite::memory:', {// 选择一种日志记录参数logging: console.log,                  // 默认值,显示日志函数调用的第一个参数logging: (...msg) => console.log(msg), // 显示所有日志函数调用参数logging: false,                        // 禁用日志记录logging: msg => logger.debug(msg),     // 使用自定义记录器(例如Winston 或 Bunyan),显示第一个参数logging: logger.debug.bind(logger)     // 使用自定义记录器的另一种方法,显示所有消息
});

Promises 和 async/await

Sequelize 提供的大多数方法都是异步的,因此返回 Promises. 它们都是 Promises, 因此你可以直接使用Promise API(例如,使用 then, catch, finally).

当然,使用 asyncawait 也可以正常工作.

Sequelize入门相关推荐

  1. NodeJS的Sequelize与Sequelize-cli入门

    1.Sequelize与Sequelize入门 可以查看Sequelize 中文文档:https://www.sequelize.com.cn/ 以及结合下面的代码 进行学习. 1.初始化工作 在no ...

  2. 【Node】新手入门 基于Express,Sequelize、IIS的MVC项目

    Github项目地址 项目简洁精悍,基本使用功能全部实现,很适合新手入门 功能应用 基于Express开发 token登录验证 数据库模块Sequelize使用 windows server iis部 ...

  3. Sequelize.js 入门

    0 前述 学习sequelize.js 官方文档: http://docs.sequelizejs.com/manual/installation/getting-started.html 本文档对应 ...

  4. php sequelize,Sequelize 中文文档 v4 - Getting started - 入门

    Getting started - 入门 此系列文章的应用示例已发布于 GitHub: sequelize-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. ...

  5. sequelize多条件_Sequelize 快速入门

    Sequelize 是一个基于 Promise 的 Node.js ORM,目前支持 Postgres. MySQL .SQLite 和 Microsoft SQL Server.它具有强大的事务支持 ...

  6. tcp reno_如何使用称为Reno Expo的简单入门工具包构建全栈应用程序

    tcp reno Building any new project from scratch can be intimidating. There's a lot to decide before y ...

  7. Node.js 入门到干活,10 个优质项目就够了!

    Node.js 在很多大公司都有不错的实践,比如:淘宝.天猫 Web 版,很多页面都是在 Node 服务器上渲染的.还有各种脚手架.前端打包发布工具.构建生态的小工具,也基本都是 Node.js 编写 ...

  8. Node.js 小白入门课3-设置基本数据库

    Node.js 小白入门课3-设置基本数据库 Sequelize(框架,数据库包文件,简化数据库编写)是一个基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL ...

  9. 【笔记-node】《imooc-nodejs入门到企业web开发中的应用》

    目录 课程名 备注 入门必学 nodejs入门到企业web开发中的应用 框架与工具 node.js+koa2+mysql打造前后端分离精品项目<旧岛> 项目实战 20190317-2020 ...

最新文章

  1. linux LANG变量 定义系统的主语系环境
  2. 小学生python-小学生学python(三)
  3. xxxx无法转换为java.lang.Class<? extends javax.validation.Payload>
  4. linux 安装 Django14
  5. 运行Gazebo出现cmd /opt/ros/melodic/lib/gazebo_ros/gzserver类似错误
  6. Clean Code 《代码整洁之道》前四章读书笔记
  7. Python之路--Django--auth认证系统
  8. MySQL UTF8与UTF8MB4
  9. 这一刻只想好好做个平凡的人
  10. Bean被IoC容器销毁后还能使用吗?
  11. 代购类网站商品高清晰大图片(1000x1000)的采集解决方案 - hackercai - 博客园
  12. 我们为何要选择使用LINUX?--大家自己体会
  13. 超简单的晃咖、小咖秀视频去水印下载方法
  14. [转]全面比较Delphi和Visual C++
  15. MySQL中B+树索引,聚簇索引,二级索引,辅助索引,回表,索引生效条件
  16. python作排产计划表_排产计划表
  17. 软件测试方法大全,49种测试方法,你知道几个?
  18. 【学习笔记】JSP学习笔记(上)
  19. hive 转拼音udf_MaxCompute UDF系列之拼音转换-阿里云开发者社区
  20. html书签解析,解析netscape样式书签html文件嵌套数组

热门文章

  1. 解决textarea在ie浏览器下宽度溢出的问题
  2. 获取事件类型及阻止默认行为
  3. jboss启动常见的错误
  4. 基于eNSP的IPv4加IPv6的企业/校园网络规划设计(综合实验/大作业)
  5. java编写一个简单的ATM机
  6. 用java自己实现String类的trim()方法功能
  7. 车载GPS等基于部标通信协议的开发方案
  8. 展会资讯 | 中秋佳节,图扑与您再聚 2022 厦门九八洽谈会
  9. vs2015.3.ent_chs.iso 下载地址
  10. 【08】STM32·HAL库开发-HAL库介绍 | STM32Cube固件库介绍 | HAL库框架结构 | 如何使用HAL库及使用注意事项