Sequelize 入门

本教程部分实例代码:https://gitee.com/liqiang88/sequelize-test

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

安装

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

npm install --save sequelize
cnpm install --save sequelize #国内

关于npm设置国内源参见 https://runoops.com/nodejs-npm.html

你还必须手动为所选数据库安装驱动程序,本教程安装的是 MySQL(mysql2):

# 选择以下之一:
$ 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 对于 MySQL 使用的基础连接器库是 mysql2 npm 软件包(1.5.2 或更高版本).

创建数据库

mysql创建数据库如下:

CREATE DATABASE `runoops_test` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';

连接到数据库

要连接到数据库,必须创建一个 Sequelize 实例. 这可以通过将连接参数分别传递到 Sequelize 构造函数或通过传递一个连接 URI 来完成(本地mysql的用户名为root,密码为123456):

const { Sequelize } = require('sequelize');

const sequelize = new Sequelize('runoops_test', 'root', '123456', {
    host: 'localhost',
    dialect: 'mysql', /* 选择 '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);
}

完整代码:

//test_conn.js
const { Sequelize } = require('sequelize');
const sequelize = new Sequelize('runoops_test', 'root', '123456', {
    host: 'localhost',
    dialect: 'mysql', /* 选择 'mysql' | 'mariadb' | 'postgres' | 'mssql' 其一 */
    freezeTableName: true
});
(async () => {
    try {
        await sequelize.authenticate();
        console.log('Connection has been established successfully.');
    } catch (error) {
        console.error('Unable to connect to the database:', error);
    }
})();

node方式执行以及结果:

$ node test_conn.js
Connection has been established successfully.
Executing (default): SELECT 1+1 AS result