ПРОБЛЕМА: В настоящее время я запускаю al oop для вставки значений в MySQL DB.
В этом l oop я генерирую MAX (num), чтобы получить максимальное число в каждом группа хранения, которая была выбрана.
Затем приложение создает список с несколькими значениями, включая это максимальное число. В моем журнале консоли отображается RowDataPacket {MAX(Offset): 1}
.
Однако при выполнении запроса INSERT база данных обновляется значением [object Object]
вместо значения Max ID для этого хранилища.
Ниже я скопировал функцию над которым я сейчас работаю.
Любая помощь будет принята с благодарностью. Сообщите мне, если потребуется дополнительная информация. заранее спасибо.
function alertStoresByDc(){
var returnedStoresbyDC = [];
/**This method will return all IPs associated with the store number */
var db = require('../app/model/connect_db');
var mysql = require('mysql');
var date = new Date(); //Get todays date, and formats it into the following (yyyy/mm/dd/hh/mm/ss) for MySQL
var today = date.toISOString().split('T')[0] + ' ' + date.toTimeString().split(' ')[0];
var dcOpt = document.getElementById("sendOptionDC"); //Getting the selected dc, then storing it into a variable
var dcNumber = parseInt(dcOpt.options[dcOpt.selectedIndex].value);
let message = document.getElementById("alert-message").value; //Get alert message from user input, then stores it into a variable
var sender = 427750;
//Confirms with the user before sending the alert message
var r = confirm("Are you sure you want to send this alert? Press ok to confirm.");
if (r==true) {
//Gets store name, ip, and dc number
$queryStoresByDC = 'SELECT `StoreNumber` FROM `store` WHERE DCNum = ' + mysql.escape(dcNumber) + '; '
db.query($queryStoresByDC, (err, rows) => {
if(err)
return console.log("An error occured with the query", err);
}
//Data returned from the MySQL database will be parsed by looping over the rows object. getting IP addresses, then adding to a list
rows.forEach( (row) => {
console.log(`${row.StoreNumber}`);
returnedStoresbyDC.push(`${row.StoreNumber}`); //Adding store numbers to the returnedStoresbyDC list
document.getElementById("messageSentBoxInfo").innerHTML = "Alert message sent to the following stores in DC " + mysql.escape(dcNumber) + ": \n" + "Stores: " + returnedStoresbyDC;
});
console.log("List of Stores: " + returnedStoresbyDC);
var records = [];
//Adds the message, store number, and todays date into the records array list for the insert statement
returnedStoresbyDC.forEach((storeNum) => {
//Getting max offset for current store
$queryOffsetByDC = 'SELECT MAX(Offset) FROM `messages_sent` WHERE `StoreNum` = ' + mysql.escape(storeNum) + '; '
db.query($queryOffsetByDC, (err, offs) => {
if(err){
return console.log("An error occured with the query", err);
}
console.log(offs);
records.push([message, storeNum, sender, offs, today]);
console.log(records);
var sql = "INSERT INTO `messages_sent`(Message, StoreNum, AdminSender, Offset, DateSent) VALUES ?";
db.query(sql, [records], (err) => {
if (err) {
return console.log("An error occured with the query", err);
}
});
});
});
});
//Calling method to send kafka message by DC
sendKafkaMsgByDC();
txt = "Alert sent!";
}
else{
txt = "No alert update sent";
}
document.getElementById("msgOutcome").innerHTML = txt;
}