我进行了以下设置,与公司和员工建立了一对多的关系。示例data.json请求文件如下。当有更新请求时,我想在同一呼叫中更新公司信息和所有子雇员信息。目前,我只更新公司信息,但是如何更新员工?
文件-data.json
{
companyName : abc
employee : [
{employee1 ...},
{employee2....}
]
}
控制器
static async update(id, company) {
try {
return await models.Company.update({ where: { id: Number(id) }});
//how to update employee records here??
} catch (error) {
throw error;
}
}
Company.model.js
module.exports = (sequelize, Sequelize) => {
const Company = sequelize.define('company', {
uuid: {
type: Sequelize.UUID,
defaultValue: Sequelize.UUIDV1,
primaryKey: true
},
name: {
type: Sequelize.STRING
},
street: {
type: Sequelize.STRING
},
phone: {
type: Sequelize.STRING
}
});
return Company;
}
Employee.model.js
module.exports = (sequelize, Sequelize) => {
const Employee= sequelize.define('employee', {
id: {
type: Sequelize.STRING
},
name: {
type: Sequelize.STRING
}
});
return Employee;
}
db.config.js
const env = require('./env.js');
const Sequelize = require('sequelize');
const sequelize = new Sequelize(env.database, env.username, env.password, {
host: env.host,
dialect: env.dialect,
operatorsAliases: false,
pool: {
max: env.max,
min: env.pool.min,
acquire: env.pool.acquire,
idle: env.pool.idle
}
});
const db = {};
db.Sequelize = Sequelize;
db.sequelize = sequelize;
db.company = require('../model/company.model.js')(sequelize, Sequelize);
db.Employee = require('../model/Employee.model.js')(sequelize, Sequelize);
// Here we can connect companies and products base on company'id
db.company.hasMany(db.product, {foreignKey: 'fk_companyid', sourceKey: 'uuid'});
db.employee.belongsTo(db.company, {foreignKey: 'fk_companyid', targetKey: 'uuid'});
module.exports = db;