Я пытаюсь подсчитать количество документов в коллекции mongodb, основываясь на разных условиях.
Я могу получить данные и сформировать один объект json, но не могу отправить их в ответ клиенту.
В приведенном ниже коде вы видите, что это файл моего сервера(server.js), где я выполняю вызов API GET, в котором я пытаюсь выполнить несколько запросов к базе данных и возвращать значения в обещаниях.
Rfid - это модель mongoose, а sub - пустой объект json, который я инициализировал.В конце я пытаюсь объединить данные в один объект json, но я не могу отправить объект (под) json в ответ на вызов get api.
Возможно, это проблема области действия, ноЯ не могу это выяснить.
Пожалуйста, помогите мне.
server.js
app.get('/dashboard', function(req,res){
var sub = {};
var sub1,sub2,sub3,sub4,sub5,sub6,sub7 = {};
// no of cars entered
Rfid.find( {entryTime :{$exists :true }})
.then(function(res,err){
if(err) console.log(err);
var length = res.length;
sub1 = {
"no_of_cars_entered" : length
}
sub = Object.assign(sub,sub1);
});
// no of cars waiting for inspection
Rfid.find( {entryTime :{$exists :true },inwardInspecStartTime:{$exists:false}})
.then(function(res,err){
if(err) console.log(err);
var length = res.length;
sub2 = {
"no_of_cars_waiting_for_inspection" : length
}
sub = Object.assign(sub,sub2);
});
//no of cars inspected
Rfid.find( {inwardInspecEndTime :{$exists :true }})
.then(function(res,err){
if(err) console.log(err);
var length = res.length;
sub3 = {
"no_of_cars_inspected" : length
}
sub = Object.assign(sub,sub3);
});
//no of cars waiting for invoice (inward REJECTION)
Rfid.find( {inwardInspecEndTime :{$exists :true },invoiceTime:{$exists:false}})
.then(function(res,err){
if(err) console.log(err);
var length = res.length;
sub4 = {
"no_of_cars_waiting_for_invoice" : length
}
sub = Object.assign(sub,sub4);
});
// no of cars invoiced
Rfid.find( {invoiceTime :{$exists :true }})
.then(function(res,err){
if(err) console.log(err);
var length = res.length;
sub5 = {
"no_of_cars_invoiced" : length
}
sub = Object.assign(sub,sub5);
});
//no of cars waiting for delivery ibnl
Rfid.find( {invoiceTime :{$exists :true },deliveryInspecStartTime:{$exists :false}})
.then(function(res,err){
if(err) console.log(err);
var length = res.length;
sub6= {
"no_of_cars_waiting_for_delivery" : length
}
sub = Object.assign(sub,sub6);
});
// no of cars delivered
Rfid.find( {deliveryInspecEndTime :{$exists :true }})
.then(function(res,err){
if(err) console.log(err);
var length = res.length;
sub7 = {
"no_of_cars_delivered" : length
}
sub = Object.assign(sub,sub7);
console.log(sub);
})
console.log(sub);
});
В результате я получаю ВЫВОД Я ПОЛУЧАЮ:
{ no_of_cars_entered: 6,
no_of_cars_waiting_for_inspection: 1,
no_of_cars_inspected: 5,
no_of_cars_invoiced: 4,
no_of_cars_waiting_for_invoice: 1,
no_of_cars_waiting_for_delivery: 0,
no_of_cars_delivered: 4 }
{}
где мне нужно получить
ОЖИДАЕМЫЙ ВЫХОД:
{ no_of_cars_entered: 6,
no_of_cars_waiting_for_inspection: 1,
no_of_cars_inspected: 5,
no_of_cars_invoiced: 4,
no_of_cars_waiting_for_invoice: 1,
no_of_cars_waiting_for_delivery: 0,
no_of_cars_delivered: 4 }
{ no_of_cars_entered: 6,
no_of_cars_waiting_for_inspection: 1,
no_of_cars_inspected: 5,
no_of_cars_invoiced: 4,
no_of_cars_waiting_for_invoice: 1,
no_of_cars_waiting_for_delivery: 0,
no_of_cars_delivered: 4 }