0

我一直在寻找一种方法来对 mongo 数据库进行各种操作,具体取决于用户在我的网站上连接到哪个路由。因此,对 www.mysite.com/data 执行 html-post 会将信息添加到 mongo DB,并且在同一 url 执行 html-get 将从同一数据库获取数据。我设法解决了这个问题,但是每次我用网站打开服务器时,我都会在 mongo 数据库中注册 5 个连接。为什么会这样,这很糟糕吗?

我的代码:

我在 mongo.js 中运行这段代码:

var mongodb = require('mongodb');

module.exports.init = function (callback) {
  var server = new mongodb.Server("127.0.0.1", 27017, {});
  new mongodb.Db('test', server, {w: 1}).open(function (error, client) {
    //export the client and maybe some collections as a shortcut
    module.exports.client = client;
    module.exports.myCollection = new mongodb.Collection(client, 'myCollection');
    callback(error);
  });
};

我初始化所有正在运行的东西(app.js):

/express set-up/
var mongo = require('./mongo.js');
/.../
mongo.init(function (error) {
    if (error)
        throw error;

    app.listen(3000, function(){
    console.log("Express server listening on port %d in %s mode",3000,
            app.settings.env);
    });
});

而且,例如,帖子看起来像(仍然是 app.js):

app.post('/App', function(req, res) {
    users = users.concat(req.body);
    res.redirect('/App');        
//Add user to MongoDB
    mongo.myCollection.insert({name: req.body.name, car: req.body.car, website: req.body.website, phone: req.body.phone}, {safe:true}, function(err, objects) {
    if (err)
        console.warn(err.message);
  });

很确定我的重定向在这里也无法正常工作,但这是另一个问题。

关于为什么每次启动服务器时都会获得五个连接的任何建议?

4

1 回答 1

2

这五个连接是因为这是默认的 poolSize (5)。您可以调整它,如服务器选项文档中所述- 它还提到了默认值。

于 2013-06-18T10:33:38.663 回答