Изначально я использовал mongoDb для доступа или управления базой данных.Но теперь я хочу перейти на mySQL, но затем я использовал Sequelize ORM для получения или установки данных.Но у меня возникла проблема при объединении или заполнении двух таблиц для отображения данных на экране
Я уже включил атрибут для получения целых данных, но мне не удалось использовать схему
Warehouse.findAll( { raw: true } ).then( warehouses => {
Location.findAll( { raw: true }, { include: { model: Warehouse } } ).then( locations => {
const locationObject = locations.map( loaction => {
return Object.assign( {}, {
location_code: loaction.location_code,
location_name: loaction.location_name,
location_created_on: loaction.location_created_on,
isActive: loaction.isActive,
location_warehouse: warehouses.map( warehouse => {
return Object.assign( {}, {
warehouse_code: warehouse.warehouse_code,
warehouse_name: warehouse.warehouse_name,
} )
} )
} )
} )
console.log( "locations---------------", locations )
if ( locations == null )
return res.status( 422 ).send( { header: "Error", content: "err-msg.NoData" } );
else {
Location.count().then( counts => {
if ( err ) {
res.status( 422 ).send( { header: "Error", content: "err-msg.NoData" } );
} else {
res.send( {
success: true,
msg: resp = {
locations,
counts
}
} );
}
return;
} );
return;
}
res.json( locationObject );
} );
} )
, которую я использовал
module.exports = function () {
const Sequelize = require( 'sequelize' );
const { db } = require( '../../Config/config' );
const sequelize = new Sequelize( db.url , '*********',, '*********', {
host: '*********',,
port: '3306',
dialect: 'mysql',
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
define: {
timestamps: false
}
} );
const Warehouse = sequelize.define( 'warehouses', {
warehouse_code: {
type: Sequelize.STRING,
primaryKey: true
},
warehouse_name: Sequelize.STRING,
} );
const Location = sequelize.define( 'locations', {
location_code: {
type: Sequelize.STRING,
primaryKey: true
},
location_name: Sequelize.STRING,
location_warehouse: {
type: Sequelize.STRING,
references: 'warehouses', //table name
referencesKey: 'warehouse_code' // column name in the table
}
} );
Warehouse.hasMany(Location , {foreignKey: 'location_warehouse', sourceKey: 'warehouse_code'});
Location.belongsTo(Warehouse , {foreignKey: 'location_warehouse', targetKey: 'warehouse_code'});
return {
models: {
Location,
Warehouse,
}
}
}
Мне нужно имя склада в моей таблице местоположений, где я связал таблицу местоположений с кодом_склада.