0
对我的MongoDB DB执行查找查询似乎会重置连接并使节点服务器崩溃。MongoDB查询将套接字连接重置为Node.js服务器
我的服务器处理套接字事件是这样的:
io.sockets.on('connection', function(socket) {
MongoClient.connect(url, function(err, db) {
if (err)
console.log('Error');
console.log('Connection established to', url);
var collection = db.collection('spedizioni');
socket.on('adminReq', function() {
handlers.handleAdmin(collection, socket);
});
});
});
的handleAdmin功能是:
function handleAdmin(collection, socket) {
console.log('Admin event');
collection.find(null, function(err, raw) {
console.log('Find function');
console.log(raw);
if (err){
socket.emit('err');
console.log('Error function');
}
if (raw) {
socket.emit('adminRes', raw);
console.log('Response function');
} else {
socket.emit('adminNull');
console.log('Null function');
}
});
}
我想查询返回数据库上的所有项目;根据MongoDB手册,我通过执行不带参数的查询查询来实现这一点。
我尝试省略null或使用{}作为第一个参数,但没有任何更改。
在按下按钮以生成adminReq事件,“连接到DB”字符串印刷在控制台和Firefox的控制台信号到插座的新连接被estabilished;我的客户端脚本连接到document.load一次。
之后是节点控制台输出;你可以看到查询被执行;看着'原始'输出似乎失败了尝试。 err为空,没有别的输出。
望着关于“最长呼叫栈”其他的答案超出现在看来,这是一个递归函数通常引起的,但这里的情况并非如此。
这是为什么输出,而不是查询结果?为什么连接重置?
一个非常类似的功能工作正常,并返回整个DB的语法似乎是正确的,感觉我失去了一些东西很明显...