I have some kind of error in my javascript that I can't seem to figure out. I am creating objects of cars out of a MySql query. Further I am storing these objects into an array (carArray
).
The problem seems to appear once I try to access these objects later on. In this example, I want to present the objects within a table.
function AddTableOfCars(){
// Table headers
var heading = new Array();
heading[0] = "Merke";
heading[1] = "Reg.nr.";
heading[2] = "Sist endret";
// Database connection
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'db_host',
user : 'db_user',
password : 'db_password',
database : 'db_name'
});
// Empty array to store cars
var carArray = [];
connection.connect();
var stmt = 'SELECT `VehicleID`,`VehicleMake`,`LicenseNumber`,`IsActive`,`DateChanged` FROM `db_table`';
connection.query(stmt, function (error, rows, fields) {
if (error) console.log(error.code);
else {
// Loop through query result
// Create car objects
// Store car objects in array
for (var i = 0; i < rows.length; i++) {
var carObj = new Car(rows[i].VehicleID, rows[i].VehicleMake, rows[i].LicenseNumber, rows[i].IsActive, rows[i].DateChanged);
carArray.push(carObj);
}
}
});
connection.end();
// Table columns
var table = document.getElementById('car-table');
for (var i = 0; i < carArray.length; i++) {
var row = table.insertRow(i);
var cellMake = row.insertCell(0);
var cellLicense = row.insertCell(1);
var cellDateChanged = row.insertCell(2);
cellMake.innerHTML = carArray[i].VehicleMake;
cellLicense.innerHTML = carArray[i].LicenseNumber;
cellDateChanged.innerHTML = carArray[i].DateChanged;
}
// Logs for debugging purposes
console.log(carArray);
console.log(carArray[0]);
}
My console.log(carArray);
returns the following within the console:
[]
0: Car
1: Car
length: 2
So far, it seems to add up. However, when I try to access one of the objects within the array using console.log(carArray[0]);
, it returns undefined
.
Does anyone have any pointers for me at this point. It's most likely just a tiny detail that I have missed. But I have been looking at my code for quite some time now, I am starting to see animals instead of code...
Any help would be greatly appreciated.