node.js - New Relic 出现 Node mongo-native GridFS 检测错误

标签 node.js mongodb express newrelic

当我 NewRelic= require('newrelic'); 并执行

var NewRelic= require('newrelic'),
    mongo_native = require('mongodb'),
    Express= require('express'),
    http= require('http');
    GridStore =  mongo_native.GridStore;

process.on('uncaughtException', function(err) {
    console.log('Uncaught Exception', err);
});
mongo_native.connect(mongoLabUri, {}, function(err, db){
    var app= Express();
    var server= http.createServer(app).listen(5009, function(err){
        console.log('listening on 6000, err:',err);
        app.get('/', function(){
            console.log('received request to /');
            var gs = new GridStore(db, 'RandomFileName'+Math.random(), "w" );
            console.log('initalized gridstore');
            gs.open(function(err, gs) {
               console.log('gridstore opened successfully')
            });
        });
    });

});

输出:

listening on 6000, err: undefined
received request to /
initalized gridstore
Uncaught Exception { [TypeError: Cannot read property 'collectionName' of undefined]
   domain: 
   { domain: null,
    _events: { error: undefined },
    _maxListeners: 10,
    members: [] },
domainThrown: true }

Node v0.10.x 最新快报、新遗物、mongo

同样的事情发生在nodejitsu上,部署heroku Node

如果我取出 New Relic,一切都会正常。有人可以帮我吗?

堆栈跟踪:

TypeError:无法读取/Users/vlad/Development/nodejitsu/zooplr/node_modules/newrelic/lib/instrumentation/mongodb.js:51:45\n 处未定义的属性\'collectionName\' b (domain.js:183:18)\n 位于/Users/vlad/Development/nodejitsu/zooplr/node_modules/newrelic/node_modules/continuation-local-storage/context.js:57:17\n 位于/Users/vlad/Development/nodejitsu/zooplr/node_modules/newrelic/lib/transaction/tracer.js:239:22\n 在 ErrorTracer.monitor (/Users/vlad/Development/nodejitsu/zooplr/node_modules/newrelic/lib/error.js: 188:12)\n 在 Tracer.monitor (/Users/vlad/Development/nodejitsu/zooplr/node_modules/newrelic/lib/transaction/tracer.js:237:28)\n 在 wrapCallbackInspiration (/Users/vlad/Development/nodejitsu/zooplr/node_modules/newrelic/lib/transaction/tracer.js:179:17)\n 位于/Users/vlad/Development/nodejitsu/zooplr/node_modules/mongodb/lib/mongodb/cursor.js:738:35\n 在 Cursor.close (/Users/vlad/Development/nodejitsu/zooplr/node_modules/mongodb/lib/mongodb/cursor.js:959:5)\n 在 Cursor.nextObject (/Users/vlad/Development/nodejitsu/zooplr/node_modules/mongodb/lib/mongodb/cursor.js:738:17)',

最佳答案

这是 New Relic for Node.js 中的一个错误,是由 MongoDB 驱动程序版本 1.3.20 的出现引入的。还有a ticket为此打开模块。我们在 New Relic 中正在测试一个解决方案,并且解决该问题的新版本模块应该会在近期发布到 npm。

关于node.js - New Relic 出现 Node mongo-native GridFS 检测错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20204612/

相关文章:

node.js - 如何访问 Trails 模型中的 Sequelize 模型

node.js - 查询两个数据库没有模型sequelize

php - Imagick 和 GridFS

mongodb - 将 ISO 日期转换为 yyyy-mm-dd 格式

jquery - 在 ejs 模板中使用 jQuery

node.js - Socket.io 1.0,IE7。无法读取发出的消息

node.js - 如何在 HTML 上显示 Node 服务器的健康状态

mongodb - mongostat中查询和命令的区别

javascript - 函数返回值错误

angularjs - 如何在一个 app.get 请求中返回多个 Mongodb 集合?