// Include Sequelize module. const Sequelize = require('sequelize') // Import sequelize object, // Database connection pool managed by Sequelize. const sequelize = require('./database.js') const User = require('./User.js'); const Product = require('./Product.js'); // Define method takes two arrguments // 1st - name of table // 2nd - columns inside the table const FavoriteProduct = sequelize.define('favorite_product', { favorite_id:{ // Sequelize module has INTEGER Data_Type. type:Sequelize.INTEGER, autoIncrement:true, allowNull:false, primaryKey:true }, createdAt: Sequelize.DATE, //no dates }, { updatedAt: false }); User.hasMany(FavoriteProduct, { foreignKey: 'user_id'} ); Product.hasMany(FavoriteProduct, { foreignKey: 'product_id'} ); FavoriteProduct.belongsTo(Product, { foreignKey: 'product_id'}); FavoriteProduct.belongsTo(User, { foriegnKey: 'user_id'}) module.exports = FavoriteProductAnteriormente, tenía este modelo como modelo BelongsToMany, con Product y User->belongToMany a través de FavoriteProduct. Lo cambié porque la carga ansiosa de FavoriteProduct no funcionaba cuando intentaba cargar desde productos. Ahora tengo un nuevo problema, intentar cargar con entusiasmo la nueva tabla arroja este error:
"code": "ER_BAD_FIELD_ERROR", "errno": 1054, "sqlState": "42S22", "sqlMessage": "Unknown column 'favorite_product.userUserId' in 'field list'",No sé por qué ocurrió esto, pero debe ser porque intenté cambiar de una asociación de pertenencia a muchos sin realizar ninguna migración. No hay columnas adicionales en la base de datos ni nada por el estilo.
¿Alguien sabe cómo solucionar este problema de campo sin eliminar la tabla?
Como referencia, simplemente estoy haciendo esto:
await Product.findOne({ include: [{ model: FavoriteProduct, required: false, }]Debe corregir la asociación FavoriteProduct.belongsTo(User : escribió mal la opción foreignKey al indicar foriegnKey .
FavoriteProduct.belongsTo(User, { foreignKey: 'user_id'})