gpt4 book ai didi

javascript - 自定义 SequelizeJS 调用

转载 作者:行者123 更新时间:2023-12-03 22:42:52 25 4
gpt4 key购买 nike

所以现在我一直在使用 SequelizeJS 作为我的数据访问层,我现在最大的担忧是它试图找到一种自定义 Sequelize 模型调用的方法。

例如,假设对于 model.find() 方法,我想将缓存与 Redis 集成,以便如果数据缓存在 Redis 中,它会跳过对关系数据库的正常调用。我能找到做这样的事情的唯一方法是:

module.exports = function(sequelize, DataTypes) {
var User = sequelize.define('User', {
id: DataTypes.INTEGER,
firstName: DataTypes.INTEGER,
middleName: DataTypes.INTEGER,
lastName: DataTypes.INTEGER,
email: DataTypes.INTEGER,
username: DataTypes.INTEGER,
password: DataTypes.INTEGER,
superAdminFlag: DataTypes.INTEGER,
requirePasswordChangeFlag: DataTypes.INTEGER,
lastPasswordChangeDateTime: DataTypes.INTEGER,
createdTimestamp: DataTypes.INTEGER,
updatedTimestamp: DataTypes.INTEGER,
type: DataTypes.INTEGER,
status: DataTypes.STRING(32)
}, {
sequelizeSetup: function(models) {
User.hasMany(models.OauthToken, {
foreignKey: 'userId',
through: null
});
}
});

//create a custom object that links to the Sequelize model object
var MyUser = Object.create(User);

//add custom logic to the find() method for this model
MyUser.find = function(options, queryOptions) {
console.log('custom logic');
return User.find(options, queryOptions);
};

return MyUser;
};

我的问题是这是否是自定义 SequelizeJS 模型方法的正确方法以及这样做是否会给我带来任何问题(我的意思是模型对象不是模型对象的实例)?

最佳答案

在 sequelize 中没有标准的方式来做你想做的事情,但我想说你正在做的事情看起来不错,而且我看不出它会导致任何问题。

对于 validate、create、update、destroy、bulkcreate、bulkupdate 和 bulkdestroy,您可以使用 Hook https://github.com/sequelize/sequelize/wiki/API-Reference-Hooks但是这些还没有实现 find (有 open feature request though ,您可以在其中表达您的支持)

关于javascript - 自定义 SequelizeJS 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23575798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com