【发布时间】:2020-05-18 20:21:39
【问题描述】:
我想将数据插入数据库。但我不想使用autocommit:true,因为想确保另一个进程能够先完成。但是收到一条错误消息。我不知道我犯了什么错误。希望能帮我解决这个问题。提前谢谢你。
(节点:2372)UnhandledPromiseRejectionWarning:错误:NJS-003:无效 联系 在 Connection.commit (C:\Users\user\Documents\GitHub\EIS-API\node_modules\oracledb\lib\connection.js:239:16) 在 C:\Users\user\Documents\GitHub\EIS-API\node_modules\oracledb\lib\util.js:202:16 在新的承诺 () 在 Connection.commit (C:\Users\user\Documents\GitHub\EIS-API\node_modules\oracledb\lib\util.js:190:14) 在 PostPemantauanPerkidmatanPotongRumputKonsesi (C:\Users\user\Documents\GitHub\EIS-API\routes\konsesi\konsesi.js:416:28) (节点:2372)UnhandledPromiseRejectionWarning:未处理的承诺 拒绝。此错误源于在异步内部抛出 没有 catch 块的函数,或者通过拒绝一个承诺 不使用 .catch() 处理。 (拒绝 ID:1)(节点:2372)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。在 未来,未处理的承诺拒绝将终止 具有非零退出代码的 Node.js 进程。
//want to check if file exists or not
var filename1 = typeof files[0] === "undefined" ? "" : files[0].originalname;
var filename2 = typeof files[1] === "undefined" ? "" : files[1].originalname;
var filename3 = typeof files[2] === "undefined" ? "" : files[2].originalname;
var filename4 = typeof files[3] === "undefined" ? "" : files[3].originalname;
let date = new Date();
let connection2;
try{
connection2 = await oracledb.getConnection(dbconfig);
// add information with image
const result = await connection2.execute(
`
INSERT INTO EIS.KON_KONRUMPUT
(
KON_ZONRUMPUT,KON_PAKEJKODS,KON_TAMANIDSS,KON_NAMATAMAN,
KON_JALANIDSS,KON_NAMAJALAN, KON_ADDRSYRKT,KON_SELIANAME,
KON_PTAUDATES,KON_BULANPTAU,KON_MASAPNTAU,KON_PUSINGANS,
KON_TIMESAMPM,KON_STATUSKOD,KON_CATATANSS,KON_TAHUNRPUT,
KON_ENTRYOPER,KON_ENTRYDATE,KON_STATUSFLG,
KON_GAMBAR111,KON_GAMBAR222,KON_GAMBAR333,KON_GAMBAR444
)
VALUES
( :zon , :pakejKod , :tamanId , :tamanName ,
:jalanId , :jalanName , :alamat_syarikat ,:nama_penyelia ,
:tarikhPantau , :bulan , :masa , :pusingan ,
:timeAMPM , :status , :catatan , :tahun ,
:entryOperator , :tarikhPantau , :platform,
:gambar111 , :gambar222 , :gambar333 , :gambar444
)
`,{
zon:{val:params.zon} , pakejKod:{val:params.pakejKod} , tamanId:{val:params.tamanId} , tamanName:{val:params.tamanName},
jalanId:{val:params.jalanId} , jalanName:{val:params.jalanName} , alamat_syarikat:{val:_const.optionalParams(params.alamat_syarikat)} , nama_penyelia:{val:params.nama_penyelia},
tarikhPantau:{val:params.tarikhPantau} , bulan:{val:params.bulan}, masa:{val:params.masa} , pusingan:{val:params.pusingan},
timeAMPM:{val:params.timeAMPM} , status:{val:params.status} , catatan:{val:_const.optionalParams(params.catatan)} , tahun:{val:params.tahun},
entryOperator:{val:params.entryOperator} , tarikhPantau:{val:date},platform:{val:"A"},
gambar111:{val:filename1} , gambar222:{val:filename2} , gambar333:{val:filename3} , gambar444:{val:filename4}
}
);
Status.status = _const.MSG_STATUS_SUCCESS;
Status.message = "Data berjaya simpan..";
Status.info = result.rowsAffected;
// send image to another server
files.forEach(image => {
var formData = {
image: fs.createReadStream("picture/" + image.originalname),
};
var data = request.post({url:'http://localhost/upload_file/', formData: formData}, async function(err, httpResponse, body) {
if(httpResponse.statusCode != 200){
Status.message = err;
//delete image
var deleteImage = !isDeleteImage(files);
//failed delete image
if(!deleteImage.isSuccess){
Status.message = deleteImage.message;
}
return Status;
}else{
}
});
});
}catch(err){
console.error(err);
Status.message = err;
}finally{
try{
await connection2.close();
}catch(err){
console.error(err);
Status.message = err;
}
}
//commit
connection2.commit();
【问题讨论】:
标签: javascript node.js node-oracledb