0

Web サイトでユーザーが接続するルートに応じて、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);
  });

ここでも必要に応じてリダイレクトが機能していないことは確かですが、それは別の問題です。

サーバーを起動するたびに5つの接続を取得する理由について何か提案はありますか?

4

1 に答える 1

2

5 つの接続があるのは、それがデフォルトの poolSize (5) であるためです。サーバーオプションのドキュメントで概説されているように、調整できます-デフォルトについても言及しています。

于 2013-06-18T10:33:38.663 に答える