Sequelize
介绍:
Sequelize是一个基于promise的node.js的ORM(Object Relatial Module)框架,通过该框架我们可以在进行后端API开发时,不再通过原始的手动写入数据库操作语句,而是可以通过对象操作的方式进行数据库相关操作.目前Sequelize支持的数据库有Postgres、Mysql、MariaDB、SQLite、Microsoft SQL Server.它具有强大的事务支持,关联关系,预读和延迟加载,读取复制等功能.
注意:
** 在我们使用sequelize进行开发时,调用的API大多都是promise类型的,因此需要通过promise的方式进行相应的数据获取.(我们可以使用async以及await进行数据获取.也可以通过promise的then方法、catch方法、all方法、finally方法等进行数据处理) **
安装
我们想要使用sequelize就必须先进行安装(这里以mysql数据库为例,其他数据库驱动请另外查看sequelize官网)
npm install --save sequlize // 在项目中安装sequelize
npm install --save mysql2 // 为指定数据库安装相应的驱动
以用户登录API为例子:
文章目录
-
- Sequelize
- 以用户登录API为例子:
-
-
- 步骤一: 在项目中的src文件夹(这里我以src文件夹作为项目主文件夹,项目实现都在该文件夹下进行)下新建config文件夹,
- 在该config文件夹中分别新建dbinfo.js文件与connect.js文件
- 步骤二: 在src文件夹下新建models文件夹(该文件夹用于放置相应的数据库表生成功能文件)
- 步骤三: 在src文件夹下新建services文件夹(该文件夹用于放置操作相关数据库表的功能实现文件)
- 步骤四: 在src文件夹下新建controllers文件夹(该文件夹用于放置API请求信息回复相关操作文件)
- 步骤五: 在路由中引用(koa的路由推荐单独在一个文件夹中进行管理),在src文件夹下新建routers文件夹,用于放置相关路由文件
- 步骤六: 在主文件中加载路由(在src文件夹下新建index.js文件作为项目入口文件)
- 其他:
-
步骤一: 在项目中的src文件夹(这里我以src文件夹作为项目主文件夹,项目实现都在该文件夹下进行)下新建config文件夹,
在该config文件夹中分别新建dbinfo.js文件与connect.js文件
dbinfo.js文件中
// 在dbinfo.js文件中,配置数据库相关信息
const config = {
database: "http_api", // 数据库名称
username: "root", // 用户名
password: "961124", // 密码
host: "localhost", // 主机地址
port: "3306", // 端口号
dialect: "mysql", //数据库类型,支持: 'mysql', 'sqlite', 'postgres', 'mssql'
logging: true, // 是否启用日志
};
module.exports = config; // 将配置导出
connect.js文件中
// 在connect.js文件中,使用sequelize连接数据库
const config=require('./dbinfo') // 引入数据库配置信息
const Sequelize = require("sequelize"); // 引入sequelize依赖
const sequelize = new Sequelize(
config.database,
config.username,
config.password,
{
dialect: config.dialect,
host: config.host,
port: config.port,
logging: config.logging,
pool: {
// 连接池配置
min: 0, // 最小连接数
max: 5, // 最大链接数
idle: 30000,
acquire: 60000,
}
}
);
// 导出
module.exports = {
sequelize,
Sequelize,
};
步骤二: 在src文件夹下新建models文件夹(该文件夹用于放置相应的数据库表生成功能文件)
在models文件夹中新建account.js文件,用于配置用户信息表
const {
sequelize, Sequelize } = require("../config/connect"); // 引入相关依赖以及数据库
const Account = sequelize.define(
"account", // 数据库中生成的表名(最终会自动在末尾添加s,因此最终数据库中生自动成表名为accounts
{
// 表字段信息配置
id: {
type: Sequelize.STRING, // 字段类型
allowNull: false, // 是否允许为空
primaryKey: true, // 是否主键
},
username: {
type: Sequelize.STRING, // 字段类型
allowNull: false, // 是否允许为空
},
password: {
type: Sequelize.STRING, // 字段类型
allowNull: false, // 是否允许为空
},
},
{
timestamps: false, // 是否自动在数据表中添加数据操作时间
}
);
Account.sync({
force: false }); // 是否自动创建表
module.exports = {
Account,
};
步骤三: 在src文件夹下新建services文件夹(该文件夹用于放置操作相关数据库表的功能实现文件)
在services文件夹中新建account.js文件,用于配置操作用户信息表的方法
const {
Account } = require("../models/account");