javascript - 使用 Node.js 设置 MongoDB 数据库连接

标签 javascript node.js mongodb

如何与 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 上的服务运行。

最佳答案

从 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

    }
.
.
.
}

关于javascript - 使用 Node.js 设置 MongoDB 数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17895309/

相关文章:

mongodb - Golang MongoDB 驱动排序

javascript - 从 javascript 发送数据到 Laravel Controller

mysql - NodeJS 和 MySQL : Error in SQL syntax leading to UnhandledPromiseRejectionWarning

node.js - 使用 pm2 重启服务器时启动 Node JS 应用程序

node.js - 有效存储数据,经常访问并且不经常更改

MongoDB更改流仅显示选定字段

javascript - Html 和 Internet Explorer : How to avoid hidden elements to be copied/pasted

javascript - val() 变化时触发 JS 事件

javascript - 这个 prettyDate 函数是如何工作的?好像它有多个返回值

mongodb - 将两个回调折叠成一个 Observable