📜  sequelize 或 - Javascript (1)

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

Sequelize

Sequelize 是一个 Node.js ORM (Object-Relational Mapping) 库,用于处理 Node.js 应用程序中的 SQL 关系型数据库。

安装

使用 npm 安装 Sequelize:

npm install sequelize

同时你可能也需要安装特定的数据库驱动程序(例如 MySQL 或 PostgreSQL):

npm install mysql2
# 或者
npm install pg pg-hstore
连接数据库

为了开始对数据库进行操作,我们需要先连接数据库。在 Sequelize 中,我们可以通过创建 sequelize 实例来连接到数据库。

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

const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'mysql'
});
定义模型

Sequelize 的主要功能是将数据库表映射到 JavaScript 对象,即 Models。我们可以通过定义一个 Model 来访问和操作相关的数据库表。

// 定义一个 User 模型
const User = sequelize.define('user', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING
  },
  email: {
    type: DataTypes.STRING,
  }
});

// 同步数据库结构
await sequelize.sync();
查询数据

通过 Sequelize,我们可以使用灵活的语法来查询数据。下面是一些常见的查询语句。

查询所有数据
const users = await User.findAll();
根据条件查询
const users = await User.findAll({
  where: {
    firstName: 'John'
  }
});
分页查询
const users = await User.findAll({
  limit: 10,      // 返回10条数据
  offset: (page - 1) * 10   // 跳过(page-1)*10条数据
});

更多查询语句,请参考 Sequelize 文档

更新和删除数据
更新数据
const user = await User.findOne({ where: { email: 'john@example.com' } });
user.firstName = 'Jonathan';
await user.save();
删除数据
await User.destroy({
  where: {
    email: 'john@example.com'
  }
});
完整示例
const { Sequelize, DataTypes } = require('sequelize');

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

// 定义 User 模型
const User = sequelize.define('user', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING
  },
  email: {
    type: DataTypes.STRING,
  }
});

// 同步数据库结构
await sequelize.sync();

// 创建一个用户
const user = await User.create({ firstName: 'John', lastName: 'Doe', email: 'john@example.com' });

// 查询所有用户
const users = await User.findAll();

// 更新用户
user.firstName = 'Jonathan';
await user.save();

// 删除用户
await User.destroy({ where: { email: 'john@example.com' } });

以上就是 Sequelize 的基本用法,希望对你有所帮助。如果你想要进一步学习 Sequelize,可以参考 官方文档