📜  如何在 Node.js 中使用 Sequelize?(1)

📅  最后修改于: 2023-12-03 15:08:43.613000             🧑  作者: Mango

如何在 Node.js 中使用 Sequelize?

介绍

Sequelize 是一个优秀的 Node.js ORM,它支持多种数据库(如 MySQL、PostgreSQL、SQLite、MSSQL 等)。

通过 Sequelize,你可以使用 JavaScript 代码来实现对数据库的操作,而无需编写 SQL 语句。

安装

在开始使用 Sequelize 之前,你需要将其安装为依赖项。可以使用 npm 命令安装:

npm install sequelize

此外,你还需要安装驱动程序(如 mysql2、pg、sqlite3 和 tedious(用于 MSSQL))来连接到你的数据库。你可以安装必要的驱动程序,也可以安装适用于所有支持数据库的通用驱动程序:

npm install pg mysql2 sqlite3 tedious
建立连接

首先,你需要创建一个 Sequelize 实例来管理与数据库的连接。你可以通过传递数据库的连接参数来配置数据库连接。

const { Sequelize } = require('sequelize');

const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'mysql',
  // ...
});

在这里,我们将 Sequelize 实例命名为 sequelize。'database''username''password' 分别代表你的数据库名称、用户名和密码。hostdialect 参数指示 Sequelize 连接的数据库类型。其他可选参数根据不同的数据库而异。

定义模型

接下来,你需要定义你的模型。模型是 Sequelize 与数据库进行交互的核心。在 Sequelize 中,模型是 JavaScript 类。这个类的实例代表数据库表中的一个条目。

在模型定义中,你需要指定模型名称、模型结构、模型之间的关系等。

例如,以下模型定义定义了一个名为 User 的模型:

const { DataTypes } = require('sequelize');

const User = sequelize.define('User', {
  // Model attributes are defined here
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING
    // allowNull defaults to true
  },
  age: {
    type: DataTypes.INTEGER,
    allowNull: false
  }
}, {
  // Other model options go here
});

在这里,我们使用 sequelize.define() 方法来定义 User 模型,并为其指定三个属性:firstNamelastNameage。每个属性都有一个数据类型,并且可以具有其他选项(如 allowNull、unique、defaultValue 等)。

模型之间的关系

如果你的数据库中有多个表,那么在 Sequelize 中定义模型之间的关系非常重要。

例如,假设你有一个名为 Order 的模型,用于存储订单,而每个订单都是由一个用户创建的。在这种情况下,User 和 Order 模型之间将有一个 1:n 关系。

使用 Sequelize,你可以这样定义它们之间的关系:

const User = sequelize.define('User', {
  // ...
});
const Order = sequelize.define('Order', {
  // ...
});

User.hasMany(Order);
Order.belongsTo(User);

在这里,我们使用 hasMany()belongsTo() 方法来定义 User 和 Order 模型之间的关系。

对数据库进行操作

一旦你定义了模型,你就可以使用 Sequelize 来对数据库执行操作。以下是一些常用的 Sequelize 方法:

  • create() - 创建新条目
User.create({ firstName: 'John', lastName: 'Doe', age: 24 });
  • findAll() - 查询所有条目
User.findAll().then(users => {
  console.log(users);
});
  • findOne() - 查询单个条目
User.findOne({ where: { firstName: 'John' } }).then(user => {
  console.log(user);
});
  • update() - 更新条目
User.update({ age: 25 }, { where: { firstName: 'John' } });
  • destroy() - 删除条目
User.destroy({ where: { firstName: 'John' } });
结论

这就是如何在 Node.js 中使用 Sequelize 的基本介绍。在实际应用程序中,你可以使用更多的 Sequelize 方法和选项,以满足你的需求。

无论何时,如果你需要查询 Sequelize 文档,你可以访问 Sequelize 官方网站(https://sequelize.org/)。