Sequelize: 一个强大的 Node.js ORM 框架

在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》《2024面试高频手撕题》《前端求职突破计划》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》《带你从入门到实战全面掌握 uni-app》

Sequelize 是一个基于 Node.js 的强大的 ORM(Object-Relational Mapping,对象关系映射)框架,支持 PostgreSQL、MySQL、SQLite 和 MSSQL 等多种数据库。

一、主要特点

  1. 支持多种数据库:提供了统一的 API,方便在不同数据库之间切换。
  2. 模型定义:可以通过定义模型来描述数据库表结构。
  3. 关联关系:支持一对一、一对多、多对多等关联关系的定义和管理。
  4. 事务支持:提供完整的事务支持,确保数据的一致性和完整性。
  5. 迁移功能:支持数据库迁移,方便在不同环境之间同步数据库结构。
  6. 查询构建器:提供了强大的查询构建器,可以方便地构建复杂的查询。

二、基本用法

安装

npm install sequelize sequelize-cli mysql2

初始化

npx sequelize-cli init

定义模型

// models/user.js
module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    username: {
      type: DataTypes.STRING,
      allowNull: false
    },
    email: {
      type: DataTypes.STRING,
      allowNull: false,
      unique: true
    }
  });
  return User;
};

同步模型

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

const User = require('./models/user')(sequelize, Sequelize.DataTypes);

(async () => {
  await sequelize.sync({ force: true });
  console.log('Database & tables created!');
})();

查询数据

(async () => {
  const users = await User.findAll();
  console.log(users);
})();

三、关联关系示例

假设有 UserPost 两个模型,一个用户可以有多篇文章。

定义模型

// models/user.js
module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    username: DataTypes.STRING
  });
  User.associate = function(models) {
    User.hasMany(models.Post);
  };
  return User;
};

// models/post.js
module.exports = (sequelize, DataTypes) => {
  const Post = sequelize.define('Post', {
    title: DataTypes.STRING,
    content: DataTypes.TEXT
  });
  Post.associate = function(models) {
    Post.belongsTo(models.User);
  };
  return Post;
};

查询关联数据

(async () => {
  const user = await User.findOne({
    where: { username: 'john' },
    include: [Post]
  });
  console.log(user.posts);
})();

四、总结

Sequelize 是一个功能强大的 ORM 框架,通过使用 Sequelize,开发者可以更加方便地进行数据库操作,提高开发效率。同时,Sequelize 提供了丰富的功能和灵活的配置选项,可以满足不同项目的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿珊和她的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值