Unable to use google analytics plugin

Bug Reports

Suggested Topics


  • 0 Votes
    2 Posts
    252 Views

    @venkat123 You need to run ./nodebb upgrade to update the dependencies. If running that didn't change the mentions version, then something went wrong with the command, or perhaps the mentions plugin is a symlink (and thus does not get updated).

  • 0 Votes
    9 Posts
    3k Views

    @dbeato just FYI if you click the bell before JS has loaded it will sit at "Loading Notifications" for forever. Try waiting a few seconds before clicking it.

  • 0 Votes
    20 Posts
    6k Views

    I thought this must be just one line or one function. I stared at the code and the database, and didn't get what's the point of the matter.

    Sorry. I just could reproduce it, but didn't know why it works that way.

  • 0 Votes
    7 Posts
    1k Views

    @psychobunny Thanks man 😎

  • 0 Votes
    5 Posts
    2k Views

    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)