返回

Sequelize Egg.js使用及扩展

前端

一、安装Sequelize

首先,我们需要安装Sequelize。我们可以使用以下命令来安装它:

npm install sequelize

二、配置Sequelize

在安装好Sequelize之后,我们需要在Egg.js的配置文件中进行配置。我们需要在config/plugin.js文件中添加以下配置:

exports.sequelize = {
  enable: true,
  package: 'egg-sequelize',
};

在config/default.js文件中添加以下配置:

exports.sequelize = {
  dialect: 'mysql', // 数据库类型
  host: '127.0.0.1', // 数据库主机
  port: 3306, // 数据库端口
  database: 'egg', // 数据库名称
  username: 'root', // 数据库用户名
  password: 'root', // 数据库密码
};

三、定义数据表

在配置好Sequelize之后,我们需要定义数据表。我们可以使用Sequelize的模型来定义数据表。

// 在app/model/user.js文件中定义用户数据表
module.exports = app => {
  const { STRING, INTEGER, DATE } = app.Sequelize;
  const User = app.model.define('user', {
    id: { type: INTEGER, primaryKey: true, autoIncrement: true },
    name: { type: STRING(30), allowNull: false },
    age: { type: INTEGER, allowNull: false },
    created_at: { type: DATE, allowNull: false, defaultValue: app.Sequelize.literal('CURRENT_TIMESTAMP') },
    updated_at: { type: DATE, allowNull: false, defaultValue: app.Sequelize.literal('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP') },
  });
  return User;
};

四、使用Sequelize进行增删改查操作

在定义好数据表之后,我们就可以使用Sequelize进行增删改查操作了。

// 新增一条用户数据
const user = await User.create({ name: 'John', age: 20 });

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

// 查询指定用户数据
const user = await User.findByPk(1);

// 更新指定用户数据
await user.update({ name: 'John Doe' });

// 删除指定用户数据
await user.destroy();

五、扩展Sequelize

Sequelize是一个非常灵活的ORM框架,我们可以根据自己的需要进行扩展。例如,我们可以使用Sequelize的钩子函数来实现一些自定义的功能。

// 定义一个钩子函数,在创建用户数据之前执行
User.beforeCreate(async (user, options) => {
  // 在这里可以做一些自定义的操作,例如对用户数据进行加密
});

六、总结

Sequelize是一个非常强大的ORM框架,它可以帮助开发者更轻松地操作数据库。本文介绍了如何使用Sequelize与Egg.js进行数据库操作,以及如何扩展Sequelize。希望本文对您有所帮助。