【发布时间】:2016-10-24 02:30:48
【问题描述】:
我有两个这样定义的模型:
user.js
var sequelize = require('../database.js').sequelize,
Sequelize = require('../database.js').Sequelize,
userAttributes = require('./userAttributes.js');
User = sequelize.define('user', {},{
classMethods: {
createRider: function(params) {
var reqs = ['name', 'phone', 'fbprofile'],
values = [],
newUser;
reqs.forEach((req) => {
var value = params[req];
});
//Here I want to use the userAttributes-object.
return newUser;
}
}
});
module.exports = User;
userAttributes.js
var sequelize = require('../database.js').sequelize,
Sequelize = require('../database.js').Sequelize,
User = require('./user.js');
UserAttribute = sequelize.define('userAttributes', {
name: Sequelize.STRING,
value: Sequelize.STRING,
});
UserAttribute.belongsTo(User);
module.exports = UserAttribute;
在用户 User.addRider 中我想向 UserAttributes 添加一些记录,所以我想将该模型包含在用户中。在 userAttributes 中,我需要要求用户将其定义为 belongsTo。这似乎不起作用。我该如何解决这个问题?
【问题讨论】:
-
问题源于将需求放在文件顶部(如果您坚持具有循环文件依赖项)。在 UserAttribute 分配发生后放置 User 要求,在 User 被分配后放置 UserAttribute 要求 - 尽管不是很干净,但这应该可以工作。
-
在没有循环依赖的情况下应该怎么做?
-
说“坚持”可能有点不公平 - Sequelize 似乎确实想要这样的事情。为什么不把 UserAttribute 定义和 User 放在同一个文件中,就在 User 定义的下面呢?这应该可以工作,因为 UserAttributes 将在 createRider 函数被调用时定义。
标签: node.js sequelize.js