Sequelize ORM框架
619字约2分钟
2024-07-1
Sequelize
温馨提示:
该框架是Node服务端的ORM框架。
安装
为了防止新小伙伴不懂--save是什么,这里先解释一下:
--save
:将模块安装到项目目录中,并在package.json
文件的dependencies
属性中添加模块的依赖。--save-dev
:将模块安装到项目目录中,并在package.json
文件的devDependencies
属性中添加模块的依赖。
默认情况下 npm 会将包添加到 dependencies,所以此时此刻加不加 --save 都是一样的。
npm install --save sequelize
解释一下,ORM框架使用的时候必须安装对应的数据库驱动,因为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
npm install --save oracledb # Oracle Database
连接数据库
我们需要定义一个mysql文件用来连接数据库,我们在env配置文件中配置了相关信息,所以直接从环境变量中获取。
// 引入Sequelize 实例
import { Sequelize } from 'sequelize'
// 结构出需要的环境变量
const { SQL_NAME, SQL_USER, SQL_PASSWORD, SQL_HOST, SQL_TYPE, SQL_PORT } = process.env;
// 创建sequelize实例
// 参数依次是 数据库名字 用户名 密码
const sequelize = new Sequelize(SQL_NAME as string, SQL_USER as string, SQL_PASSWORD, {
// 数据库地址
host: SQL_HOST,
// 连接端口
port: SQL_PORT as unknown as number,
// 数据库连接类型
dialect: "mysql" ,
pool: {
// 最大连接数
max: 8,
// 最小连接数
min: 0,
// 超时连接时间
idle: 5000
},
// 数据库表名是否使用下划线
// 如果设置为true,Sequelize将自动将模型名称转换为下划线命名法,例如UserModel将转换为user_model
define:{
underscored:true
}
// debug: false
})
// 同步 Sequelize 模型定义到数据库中。它会根据模型定义自动创建或修改数据库中的表结构,以匹配模型的结构。
// 建议1:初始化数据库:在项目启动时,自动创建所有需要的表
// 建议2:在开发过程中,当模型定义发生变化时,自动更新数据库表结构。
sequelize.sync();
try {
// 测试连接
sequelize.authenticate();
console.log('数据库连接成功:',SQL_HOST);
} catch (error) {
console.log('数据库连接失败',error);
}
export default sequelize;
温馨提示
Sequelize 提供的大多数方法都是异步的,因此返回 Promises. 它们都是 Promises, 因此你可以直接使用Promise API(例如,使用 then, catch, finally)