Here is the full log :
Notif Obj function (cutoff) {
if (process.env.NODE_ENV === 'development') {
winston.info('[notifications.prune] Removing expired notifications from the database.');
}
var today = new Date(),
numPruned = 0;
if (!cutoff) {
cutoff = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);
}
var cutoffTime = cutoff.getTime();
async.parallel({
"inboxes": function(next) {
db.getSortedSetRange('users:joindate', 0, -1, function(err, uids) {
if(err) {
return next(err);
}
uids = uids.map(function(uid) {
return 'uid:' + uid + ':notifications:unread';
});
next(null, uids);
});
},
"expiredNids": function(next) {
db.getSetMembers('notifications', function(err,nids) {
async.filter(nids, function(nid, next) {
db.getObjectField('notifications:' + nid, 'datetime', function(err, datetime) {
if (parseInt(datetime, 10) < cutoffTime) {
next(true);
} else {
next(false);
}
});
}, function(expiredNids) {
next(null, expiredNids);
});
});
}
}, function(err, results) {
if(err) {
if (process.env.NODE_ENV === 'development') {
winston.error('[notifications.prune] Ran into trouble pruning expired notifications. Stack trace to follow.');
winston.error(err.stack);
}
return;
}
async.eachSeries(results.expiredNids, function(nid, next) {
db.sortedSetsScore(results.inboxes, nid, function(err, results) {
if(err) {
return next(err);
}
// If the notification is not present in any inbox, delete it altogether
var expired = results.every(function(present) {
return present === null;
});
if (expired) {
destroy(nid);
numPruned++;
}
next();
});
}, function(err) {
if (process.env.NODE_ENV === 'development') {
winston.info('[notifications.prune] Notification pruning completed. ' + numPruned + ' expired notification' + (numPruned !== 1 ? 's' : '') + ' removed.');
}
});
});
}
D:\nuitInfo2013\forum\node_modules\mongodb\lib\mongodb\connection\base.js:242
throw message;
^
TypeError: undefined is not a function
at Object.Notifications.init (D:\nuitInfo2013\forum\src\notifications.js:16:38)
at D:\nuitInfo2013\forum\app.js:126:21
at D:\nuitInfo2013\forum\src\upgrade.js:26:4
at D:\nuitInfo2013\forum\src\database\mongo.js:309:4
at D:\nuitInfo2013\forum\src\database\mongo.js:342:4
at D:\nuitInfo2013\forum\node_modules\mongodb\lib\mongodb\collection\query.js:147:5
at Cursor.nextObject (D:\nuitInfo2013\forum\node_modules\mongodb\lib\mongodb\cursor.js:733:5)
at commandHandler (D:\nuitInfo2013\forum\node_modules\mongodb\lib\mongodb\cursor.js:713:14)
at D:\nuitInfo2013\forum\node_modules\mongodb\lib\mongodb\db.js:1806:9
at Server.Base._callHandler (D:\nuitInfo2013\forum\node_modules\mongodb\lib\
mongodb\connection\base.js:442:41)