【发布时间】:2022-11-10 03:30:05
【问题描述】:
我正在使用 node.js 将 excel 文件上传到数据库中,在我的服务中我使用 bulkCreate 将数据上传到 mysql db。让我发布表结构
table name : customer_details
columns:
customer_org_id INT,
customer_name VARCHAR,
customer_type char,
active boolean,
customer_slot VARCHAR,
service_start_time DATE,
service_end_time DATE
我还有一个额外的要求,即当我将上传 excel 并尝试推送到数据库时,它必须在数据库中检查 customer_org_id &customer_name 是否存在于数据库中。如果组合存在,则现有记录将被更新并且活动列将为假。将插入一个带有 customer_org_id 和 customer_name 的新行,活动将设置为 true。我能够执行创建、更新、删除等个别操作,但我不明白该放在哪里这些操作一起做一个bulkCreate。我正在发布我的代码
const upload = async(req,res) => {
try{
if(req.file == undefined){
return res.status(400).send("Please upload an excel file");
}
let path=
__basedir + "/resources/static/assets/uploads/" + req.file.filename;
readXlsxFile(path).then((rows)=>{
rows.shift();
let custdetail = [];
row.forEach((row)=>{
let custdetails ={
customer_org_id: row[0],
customer_name :row[1],
customer_type :row[2],
active :row[3],
customer_slot: row[4],
};
custdetails.push(custdetail);
});
CustomerDetails.bulkCreate(custdetails)
.then(()=>{
res.status(200).send({
message: "Uploaded the file successfully :" + req.file.originalname,
});
})
.catch((error) =>{
res.status(500).send({
message : "Fail to import data into DB",
error : error.message,
});
});
});
}catch(error){
console.log(error);
res.status(500).send({
message : "Could not upload the file :" +req.file.originalname,
});
}
}
任何人都可以让我知道在将数据添加到 Db 之前如何进行操作吗?我是节点 js 的新手
【问题讨论】:
标签: javascript node.js express bulk-create