Ich arbeite an einem zu vielen Assoziationen mit Sequelize. Die meisten Tutorials und Dokumentationen zeigen Beispiele, wenn beide Modelle in derselben Datei definiert sind. Ich habe derzeit zwei Dateien, erste city.js:Sequelize eins zu viele Assoziation in mehreren Dateien
const Promise = require('bluebird');
var Country = require('./country');
var City = sequelize.define("City", {
id: {
type: DataTypes.INTEGER,
field: 'id',
primaryKey: true,
autoIncrement: true
},...
}, {
freezeTableName: true,
timestamps: false
});
City.belongsTo(Country, {foreignKey : 'countryId', as: 'Country'});
Promise.promisifyAll(City);
module.exports = City;
und eine zweite Datei country.js:
const Promise = require('bluebird');
var City = require('./city');
var Country = sequelize.define("Country", {
id: {
type: DataTypes.INTEGER,
field: 'id',
primaryKey: true,
autoIncrement: true
},
...
}, {
freezeTableName: true,
timestamps: false,
paranoid: false
});
Country.hasMany(City, {foreignKey : 'countryId', as: 'Cities'});
Promise.promisifyAll(Country);
module.exports = Country;
Wenn ich beide Module importieren und versuchen Objekt zu instanziiert:
var City = require('../model/external/city');
var CountryRepository = require('../repository/external/countryRepository');
CountryRepository.findById(1).then(function(country) {
var city = City.build();
city.name = 'Paris';
city.setCountry(country);
console.log('OK');
});
Ich erhalte den folgenden Fehler:
throw new Error(this.name + '.' + Utils.lowercaseFirst(Type.toString()) + ' called with something that\'s not an instance of Sequelize.Model')
Ist das Problem, dass Modelle promiifiziert werden, bevor sie aus dem Modell exportiert werden oder fehlt mir etwas?
Danke, mit ein wenig index.js Modifikation habe ich die Ergebnisse, die ich wollte –