javascript - NodeJS 的连接池

标签 javascript node.js http mongodb connection-pooling

我有一个应用程序已将与 MongoDB 的连接数量最大化,我假设如果驱动程序设置正确,您无需担心关闭连接。

我见过有人提到通用池模块,但使用 Node 和 MongoDB 关闭或合并连接的最佳过程是什么?

这是我的应用程序连接代码:

var sys = require("sys");
var app = require('http').createServer(handler);
var io = require('socket.io').listen(app);

app.listen(1337);

io.configure(function () {
io.set('authorization', function (handshakeData, callback) {
    callback(null, true);
    });
});

function handler (req, res, data) {
    sys.puts('request made to trackerapp.js'); 
    res.writeHead(200);
    res.end(data);
}

io.sockets.on('connection', function (socket) {
  socket.on('adTracker', function (data) {
  var adRequestData = data;
  var databaseUrl = "mongodb://dbuser:dbpass@mongolab.com/tracker";
  var collections = ["cmnads"]
  var db = require("mongojs").connect(databaseUrl, collections);

    db.cmnads.insert({adRequest : adRequestData},function(err, updated) {
        if( err || !updated ) console.log("mongo not updated" + err);
        else console.log("data stored");
      });
    });
});

最佳答案

在看到 JohnnyHK 的评论后,我能够从 Socket.io 连接中拉出连接事件并且它工作正常,请参见下面的解决方案:

var databaseUrl = "mongodb://dbuser:dbpass@mongolab.com/tracker";
var collections = ["cmnads"];
var db = mongojs.connect(databaseUrl, collections);

io.sockets.on('connection', function (socket) {
  socket.on('adTracker', function (data) {
  var adRequestData = data;

  //vars for MongoDB used to be created here... so new connect function was called on every request to socket.io

  db.cmnads.insert({adRequest : adRequestData},function(err, updated) {
      if( err || !updated ) console.log("mongo not updated" + err);
        else console.log("data stored");
      });
    });
});

关于javascript - NodeJS 的连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14524950/

相关文章:

javascript - 如何在node.js中添加生产、开发和测试环境

javascript - Node.js MySQL 连接未正确释放

javascript - Spotify API 错误代码 400 - 无搜索查询

c# - .net webclient 返回 500 错误,但浏览器中的 url 没问题

javascript - 如何用延迟停止循环计时器 jQuery

javascript - 如何将数据映射到 map (Google map )上的邮政编码?

php - 如何在同一端口上使用 node.js 和 php

http - 为什么在 HTTP Accept-Language header 中使用质量值?

javascript - 如何在 View javascript中序列化后使用json字符串?

javascript - Opera localStorage 忽略我的存在检查