【发布时间】:2022-04-20 23:15:04
【问题描述】:
当我在这两个模型之间创建关系并使用 npm run 运行 feathersjs 时,我有两个模型 users.model.js 和 swing-trades.model.js dev`,我收到一个错误。
抛出新错误(
${this.name}.hasMany called with something that's not a subclass of Sequelize.Model); ^错误:users.hasMany 调用的东西不是 续集.模式
**users.model.js**
// See http://docs.sequelizejs.com/en/latest/docs/models-definition/
// for more of what you can do here.
const Sequelize = require('sequelize');
const DataTypes = Sequelize.DataTypes;
module.exports = function (app) {
const sequelizeClient = app.get('sequelizeClient');
const users = sequelizeClient.define('users', {
email: {
type: DataTypes.STRING,
allowNull: true,
unique: true
},
password: {
type: DataTypes.STRING,
allowNull: true
},
username: {
type: DataTypes.STRING,
allowNull: true,
},
firstName: {
type: DataTypes.STRING,
allowNull: true,
},
lastName: {
type: DataTypes.STRING,
allowNull: true,
}
},
{
timestamps: true, // Enable timestamps
createdAt: true, // Don't create createdAt
updatedAt: true, // Don't create updatedAt
// eslint-disable-next-line no-dupe-keys
updatedAt: 'updateTimestamp', // updatedAt should be called updateTimestamp
},
{
hooks: {
beforeCount(options) {
options.raw = true;
}
}
});
// eslint-disable-next-line no-unused-vars
users.associate = function (models) {
// Define associations here
// See http://docs.sequelizejs.com/en/latest/docs/associations/
const {swingTrades} = models;
users.hasMany(swingTrades, {as: 'swingTrades', foreignKey: 'userId'}); // will add userid to swingtrades model
};
return users;
};
swing-trades.model.js
// See http://docs.sequelizejs.com/en/latest/docs/models-definition/
// for more of what you can do here.
const Sequelize = require('sequelize');
const DataTypes = Sequelize.DataTypes;
module.exports = function (app) {
const sequelizeClient = app.get('sequelizeClient');
const swingTrades = sequelizeClient.define('swing_trades', {
company: {
type: DataTypes.STRING,
allowNull: true
}
},
{
timestamps: true, // Enable timestamps
createdAt: false, // Don't create createdAt
updatedAt: false, // Don't create updatedAt
// eslint-disable-next-line no-dupe-keys
updatedAt: 'updateTimestamp', // updatedAt should be called updateTimestamp
},
{
hooks: {
beforeCount(options) {
options.raw = true;
}
}
});
// eslint-disable-next-line no-unused-vars
swingTrades.associate = function (models) {
// Define associations here
// See http://docs.sequelizejs.com/en/latest/docs/associations/
const {users} = models;
swingTrades.belongsTo(users,{foreignKey: 'userId'});
};
return swingTrades;
};
我还没有找到任何解决方案。
【问题讨论】:
标签: node.js postgresql sequelize.js feathersjs