我正在将express js用作Web应用程序的后端,并且有一个要求:“在1个api调用中插入两个表中”。 每个表都有其自己的控制器,并且dml操作最好是其自己的控制器的一部分。
API调用将在threhsoldName控制器中触发createThreshold函数。在内部根据类型将其插入Threshold3PRTarget或ThresholdRangeTarget。
我正在附加2个控制器文件。这不是工作代码。但是供您了解。 让我知道是否需要更多详细信息。感谢您的帮助!
// main Controller
'use strict';
const typeController = require('./thresholdType')
const ThreePRController = require('./threshold3PRTarget')
const rangeController = require('./thresholdRangeTarget')
const models = require('../models');
const db = require('../models/index.js');
exports.ThresholdName = {
createThreshold:(req, res) =>{
models.BI_DATA_TSHLD_NM.create(req.body.row)
.then((data, err) => {
if(data != null ) {
// successfully inserted in first table , now insert in second
if(req.body.row["TSHLD_TYPE_CD"] == '3PR'){
// TODO: Make a call something like this
ThreePRController.Threshold3PRTarget.insertThreshold(req.body.row);
}else if (req.body.row["TSHLD_TYPE_CD"] == 'RNG'){
// TODO: similarly a call something like this
rangeController.ThresholdRangeTarget.insertThreshold(req.body.row);
}
} else {
return res.status(404).json({ err: 'No data'});
}
}).catch(function (err) {
return res.status(500).json({ error: 'Internal Server Error: '+ err});
});
}
}
// Child controllers
'use strict';
const models = require('../models');
const db = require('../models/index.js');
exports.Threshold3PRTarget = {
insertThreshold: (row, res) => { //TODO: Not sure if passing row instead of req will work
models.BI_DATA_TSHLD_NM.create(req.body.row)
.then((data, err) => {
if(data != null)
{
return res.status(200).json("success");
} else {
return res.status(404).json({ err: 'No data'});
}
}).catch(function (err) {
return res.status(500).json({ error: 'Internal Server Error: '+ err});
});
}