📅  最后修改于: 2023-12-03 14:47:24.279000             🧑  作者: Mango
Sequelize 是一个基于 Node.js 平台的 ORM 框架,它支持 MySQL、PostgreSQL、SQLite、MariaDB 等多种数据库,并提供了丰富的API来进行数据库操作。
使用 Sequelize,开发者可以轻松地进行数据库的创建、修改、删除、查询操作,同时提供了关联模型、事务处理、数据校验、数据迁移等特性,并且可以高度定制化。
可以通过 npm 进行安装:
npm install sequelize
同时也需要安装相应的数据库驱动,例如 mysql2 和 sqlite:
npm install mysql2 // for mysql database
npm install sqlite3 // for sqlite database
在使用 Sequelize 前需要先创建 Sequelize 实例:
const Sequelize = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'mysql',
logging: false,
});
其中 database
、username
、password
、host
和 dialect
都需要根据实际情况修改。
在 Sequelize 中,每一个表都对应一个模型,模型可以使用 Sequelize.define() 方法定义:
const { Sequelize, DataTypes } = require('sequelize');
const User = sequelize.define('User', {
// 在这里定义模型属性
firstName: {
type: DataTypes.STRING,
allowNull: false
},
lastName: {
type: DataTypes.STRING
// allowNull 默认为 true
},
age: {
type: DataTypes.INTEGER,
allowNull: false
},
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true
}
}, {
// 这是其他模型参数
});
查询数据可以使用模型的方法:
const users = await User.findAll();
console.log(users);
此外还可以链式调用 where、order 和 limit 等方法进行数据的过滤和排序:
const users = await User.findAll({
where: {
age: {
[Op.gt]: 18
}
},
order: [
['id', 'DESC']
],
limit: 10
});
console.log(users);
插入数据可以使用模型的 create 方法:
const user = await User.create({
firstName: 'John',
lastName: 'Doe',
age: 18,
email: 'johndoe@example.com'
});
console.log(user);
更新数据可以使用模型的 update 方法:
await User.update({ age: 20 }, {
where: {
firstName: 'John'
}
});
删除数据可以使用模型的 destroy 方法:
await User.destroy({
where: {
age: {
[Op.lt]: 18
}
}
});
Sequelize 是一个功能强大的 ORM 框架,提供了丰富的 API 和高度定制化,使得开发者能够轻松地进行数据库的操作。同时,Sequelize 支持多种数据库,可以满足不同应用的需求。