📜  sequelize (1)

📅  最后修改于: 2023-12-03 14:47:24.279000             🧑  作者: Mango

Sequelize

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,
});

其中 databaseusernamepasswordhostdialect 都需要根据实际情况修改。

定义模型

在 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 支持多种数据库,可以满足不同应用的需求。