gpt4 book ai didi

node.js - Getter 方法不适用于 PostgreSQL 模型

转载 作者:行者123 更新时间:2023-12-03 22:41:27 24 4
gpt4 key购买 nike

我正在像这样在我的用户模型上定义一个 getter 方法,

'use strict';
module.exports = function(sequelize, DataTypes) {
var Users = sequelize.define('Users', {
name: DataTypes.STRING,
uuid: {
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true
},
poll_ids: DataTypes.ARRAY(DataTypes.INTEGER)
}, {
classMethods: {
associate: function(models) {
// associations can be defined here
Users.hasMany(models.Polls, {
foreignKey: 'userId'
});
}
},
getterMethods: {
getUUID() {
return this.getDataValue('uuid');
}
}
});
return Users;
};

我正在尝试像这样运行它,
models.Users.create({
name: name,
uuid: uuid,
poll_ids: poll_ids
}).then((user) => {
console.log(user.getUUID());
});

但是,当我这样做时,我收到以下错误。

Unhandled rejection TypeError: user.getUUID is not a function



注意:我已经使用 sequelize-cli 定义了我的模型和迁移。执行迁移后,我将 getterMethods 添加到模型文件中。我运行了一个撤消迁移,同步数据库并再次迁移,以确保迁移文件反射(reflect)了对我的模型的更改。但是,我不确定这是对迁移文件进行更新的方法。我哪里错了?

最佳答案

好吧,终于有东西可以工作了。将其定义为模型的一部分不起作用,但出于某种原因将其定义为属性的一部分有效。

module.exports = function(sequelize, DataTypes) {
var Users = sequelize.define('Users', {
name: DataTypes.STRING,
uuid: {
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true,
get() {
return this.getDataValue('uuid');
}
},
poll_ids: DataTypes.ARRAY(DataTypes.INTEGER)
}, {
classMethods: {
associate: function(models) {
// associations can be defined here
Users.hasMany(models.Polls, {
foreignKey: 'userId'
});
}
}
});
return Users;
};

在路由文件中
models.Users.create({
name: name,
uuid: uuid,
poll_ids: poll_ids
}).then((user) => {
console.log('Finally');
console.log(user.get('uuid'));
});

关于node.js - Getter 方法不适用于 PostgreSQL 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44100722/

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