Now I have a code below which first query the result from vehicle model and then use the results to query for files and collections and at the end of the line in
if (finalFile) {
var item = "testdatass"
veh.data[i].FileData = item
//item was added here when i try to console log
console.log("veh.data[i].FileData", veh.data[i])
}
On the line above I tried to assign
veh.data[i].FileData = item
But when I check the data which is the veh.data on the final response, the item was not added.
return res.status(200).send({
message: "success",
pageNo: pageNo,
totalRecords: veh.data.length,
data: veh.data,
totalPages: totalPages
})
Full Code
let veh = {
data: []
}
Vehicle.model.count({}, function(err, totalCount) {
if (err) {
response = {
"error": true,
"message": "Error fetching data"
}
}
Vehicle.model.find(query, {}, pagination).sort(sortOrd + sortType).exec(function(err, vehicle) {
if (err || !vehicle) {
res.json({
message: err
})
}
var totalPages = Math.ceil(totalCount / size)
veh.data = vehicle
MongoClient.connect(url, function(err, client) {
if (err) {
return res.render('index', {
title: 'Uploaded Error',
message: 'MongoClient Connection error',
error: err.errMsg
});
}
const db = client.db(dbName);
const collection = db.collection('fs.files');
const collectionChunks = db.collection('fs.chunks');
for (let i = 0; i < veh.data.length; i++) {
let ImageList = veh.data[i].ImageList.split(',')
let profile_name = ImageList[0].split('/').pop();
collection.find({
$and: [{
$or: [{
metadata: veh.data[i].VIN
}]
},
{
$or: [{
filename: profile_name
}]
}
]
}).toArray(function(err, docs) {
if (err) {
return res.render('index', {
title: 'File error',
message: 'Error finding file',
error: err.errMsg
});
}
if (!docs || docs.length === 0) {
return res.render('index', {
title: 'Download Error',
message: 'No file found'
});
} else {
for (let i = 0; i < docs.length; i++) {
collectionChunks.find({
files_id: docs[i]._id
})
.toArray(function(err, chunks) {
if (err) {
return res.render('index', {
title: 'Download Error',
message: 'Error retrieving chunks',
error: err.errmsg
});
}
if (!chunks || chunks.length === 0) {
return res.render('index', {
title: 'Download Error',
message: 'No data found'
});
}
let fileData = []
for (let i = 0; i < chunks.length; i++) {
fileData.push(chunks[i].data.toString('base64'));
}
let finalFile = 'data:' + docs[0].contentType + ';base64,' +
fileData.join('');
if (finalFile) {
var item = "testdatass"
veh.data[i].FileData = item
}
});
}
}
})
}
})
//now on the final data the when i check and logged it the item was not added
console.log("Total Vehicle", vehicle.length)
return res.status(200).send({
message: "success",
pageNo: pageNo,
totalRecords: veh.data.length,
data: veh.data,
totalPages: totalPages
})
}) })
Result
vehicle data [ { _id: 5dba69401fe3d41714eafb62,
DriveType: 'FWD',
FuelType: 'Gasoline Fuel',
ImageList:'',
Options:
'Traction Control,Stability Control,Front Wheel Drive,Tires - Front All-Season,Tires - Rear All-Season,Aluminum Wheels,Power Steering,4-Wheel Disc Brakes,ABS,Brake Assist,Sun/Moonroof,Generic Sun/Moonroof,Rear Spoiler,Automatic Headlights,Fog Lamps,Heated Mirrors,Power Mirror(s),Privacy Glass,Intermittent Wipers,Variable Speed Intermittent Wipers,Leather Seats,Power Driver Seat,Bucket Seats,Heated Front Seat(s),Driver Adjustable
Lumbar,Passenger Adjustable Lumbar,3rd Row Seat,Pass-Through Rear Seat,Floor Mats,Steering Wheel Audio Controls,Adjustable Steering Wheel,Engine Immobilizer,Tire Pressure Monitor,Power Windows,Power Door Locks,Universal Garage Door Opener,Keyless Entry,Cruise Control,Security System,Climate Control,A/C,Rear A/C,Rear Defrost,AM/FM Stereo,CD Changer,CD Player,Satellite Radio,Entertainment System,Power Outlet,Driver Vanity Mirror,Passenger Vanity Mirror,Driver Illuminated Vanity Mirror,Passenger Illuminated Visor Mirror,Rear Reading Lamps,Driver Air Bag,Passenger Air Bag,Front Side Air Bag,Passenger Air Bag Sensor,Front Head Air Bag,Rear Head Air Bag,Child Safety Locks',
Description: '',
DateInStock: '7/15/2019',
Invoice: 3000,
BookValue: '3686',
MSRP: 0,
SellingPrice: 5592,
Miles: 162111,
Transmission: 'Automatic',
EngineDisplacement: '3.5L',
EngineCylinders: '6',
InteriorColor: '',
ExteriorColor: 'Gray',
Doors: 4,
ModelNumber: 'YF2867JNW',
Trim: 'Ex-L',
Body: 'Sport Utility',
Model: 'Piloto',
Make: 'Honda',
Year: 2007,
VIN: '5FNYF28677B037628',
Stock: 'K2501A',
Type: 'Used',
__v: 0,
state: 'published',
Certified: true } ]