本教程部分实例代码: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