Sequelize 是一个 Node.js ORM 框架,用于操作关系型数据库。它支持多种数据库(如 MySQL、PostgreSQL、SQLite、Microsoft SQL Server 等),提供了非常丰富的 API,使得开发者可以方便地进行数据库操作。
以下是一些常用的 Sequelize API 列表 可以让前端开发者不用写sql,也可以操作数据库!
创建连接
const { Sequelize } = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
dialect: 'mysql'
});
定义模型
const { Sequelize, DataTypes } = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
dialect: 'mysql'
});
const User = sequelize.define('user', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: 'John',
comment: '用户名称'
},
email: {
type: DataTypes.STRING,
allowNull: true
}
}, {
tableName: 'users',
timestamps: true,
paranoid: true,
underscored: true,
freezeTableName: true,
comment: '用户表',
indexes: [
{
name: 'name_email_index',
fields: ['name', 'email']
}
],
uniqueKeys: [
{
name: 'name_key',
fields: ['name']
}
],
hooks: {
beforeCreate: (user, options) => {
console.log('beforeCreate hook called');
}
}
});
同步数据库
sequelize.sync();
插入记录
const user = await User.create({
name: 'Tom',
email: 'tom@example.com'
});
更新记录
await user.update({
name: 'Jerry'
});
删除记录
await user.destroy();
查询记录
const users = await User.findAll({
where: {
name: 'Tom'
},
attributes: ['id', 'name'],
include: [
{
model: Project,
attributes: ['id', 'name']
}
],
order: [
['name', 'ASC']
],
limit: 10,
offset: 0,
transaction: t
});
使用原生 SQL 查询
const [results, metadata] = await sequelize.query("SELECT * FROM users");