Я использую nodejs с mondodb, но сталкиваюсь с странной ситуацией без каких-либо ошибок.Функция не называется post Обратный вызов
Я вызываю функцию updateUsers с обратным вызовом, но функция updateDashboard вообще не вызывает вызов даже при успешном завершении функции updateUsers. Кодовые блоки ниже. Об ошибках не сообщается.
updateUsers(data,dashboardDayData.key,function(err,doc){
updateDashboard(dashboardYearData,data.type,1,doc,function(err){console.log("Got executed");});
});
function updateUsers(req,dateKey,callback){
var yyyy = parseInt(dateKey.toString().substring(0,4));
var mm = parseInt(dateKey.toString().substring(4,6));
var dd = dateKey.toString().substring(6,8);
switch(req.type){
case Collection["begin"]:
Model.User.findById(req.val.did,function(err,doc){
if(!err){
if(doc === null || !doc){
req.type = Collection["user"];
req.val.ts = 1;
req.val.tts = 0;
event = EventFactory.getEvent(req);
event.save(function (err) {
if (err) {
logger.error(common.getErrorMessageFrom(err));
return;
}
var push = {};
push['_'+yyyy] = JSON.parse('{"_id":'+parseInt(mm.toString().concat(dd))+',"tse":1,"tts":0}');
Model.User.findByIdAndUpdate(req.val.did,{$push:push},{upsert:true},function(err,doc){
console.log("err "+err);
console.log("doc "+doc);
if(err){
logger.error(common.getErrorMessageFrom(err));
return;
}
callback(err,1);
});
});
}
function updateDashboard(dashboardData,eventType,valueIncrement,newUserIncrement,callback){
switch(eventType){
case Collection["begin"]:
console.log(dashboardData);
Model.Dashboard.findByIdAndUpdate(dashboardData,{$inc:{'val.tse':valueIncrement,'val.tnu':newUserIncrement}},{upsert:true},function(err,doc){
if(err){
logger.error(err);
}
callback(err);
});
break;
Итак, вы получаете журналы ошибок err и doc? –
Да, бывает. Поток, как и ожидалось, когда err и doc печатаются после того, как функция Model.User.findByIdAndUpdate и обратный вызов (err, 1) запускаются, но updateDashboard не выполняется. –
Итак, вы получаете анонимную функцию в строке 1 кода, который вы отправили, но 'updateDashboard' никогда не вызывается? или это то, что обратный вызов updateDashboard никогда не вызван? –