0

node.js を使用して MongoDB データベース接続をセットアップするにはどうすればよいですか?

ここに私のapp.jsファイルがあります:

var express = require('express'),
    app = express(),
    server = require('http').createServer(app),
    io = require('socket.io').listen(server);

server.listen(3000);

app.get('/', function(req, res) {
    res.sendfile(__dirname + '/index.htm');
});

app.use(express.static(__dirname + '/assets'));

io.sockets.on('connection', function(socket) {
    socket.on('send message', function(data) {
        io.sockets.emit('new message', data);
    });
});

既に MongoDB をセットアップし、Windows でサービスとして実行しています。

4

1 に答える 1

6

1.2 の時点で、接続を実行するための推奨される方法はドキュメントにあります。

http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html

抜粋:

var MongoClient = require('mongodb').MongoClient
  , Server = require('mongodb').Server;

var mongoClient = new MongoClient(new Server('localhost', 27017));
mongoClient.open(function(err, mongoClient) {
  var db1 = mongoClient.db("mydb");

  mongoClient.close();
});

公式の node.js ドライバーの現在の状態では、接続シングルトンが役立つ場合があります。以下は、私が使用するサンプルコードです。

connection.js モジュール:

var MongoClient = require('mongodb').MongoClient;

var db_singleton = null;

var getConnection= function getConnection(callback)
{
    if (db_singleton)
    {
        callback(null,db_singleton);
    }
    else
    {
           //placeholder: modify this-should come from a configuration source
        var connURL = "mongodb://localhost:27017/test"; 
        MongoClient.connect(connURL,function(err,db){

            if(err)
                log("Error creating new connection "+err);
            else
            {
                db_singleton=db;    
                log("created new connection");

            }
            callback(err,db_singleton);
            return;
        });
    }
}

module.exports = getConnection;

参照モジュール:

var getConnection = require('yourpath/connection.js')

function yourfunction()
{
    getConnection(function(err,db)
    {
        //your callback code

    }
.
.
.
}
于 2013-07-27T18:35:17.740 に答える