0
私はこのように定義された2つのモデルがあります:要求ループの処理方法は?
user.jsのユーザーUser.addRiderで
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;
を私はUSERATTRIBUTESにいくつかのレコードを追加したいので、私そのモデルをユーザーに組み込みたいuserAttributesでは、ユーザーにそれをbelongsToとして定義するように要求する必要があります。これはうまくいかないようです。これをどうすれば解決できますか?
問題は、ファイルの先頭にrequireを置くことに起因します(循環ファイルの依存関係が必要な場合)。 UserAttributeの割り当てが行われた後、Userが必要とし、UserAttributeはUserが割り当てられた後に必要となります。非常にきれいではないにもかかわらず動作するはずです。 – Catalyst
循環依存関係がない場合はどうすればよいですか? – Himmators
"insist"と言うのはちょっと不公平かもしれません - Sequelizeはこのように物事を望んでいるようです。 UserAttribute定義をUserと同じファイルに入れてUser Definitionの直下に置くのはなぜでしょうか? UserAttributesは、createRider関数が呼び出されるまでに定義されるため、これはうまくいくはずです。 – Catalyst