node.js - 同步连接mongodb

我想先连接到 mongodb,然后在我的应用程序中运行其他所有内容。

为此,我必须编写如下内容:

MongoClient.connect("mongodb://localhost/test", function(err, connection) {
    if (err) { console.error(err); }
    db = connection;

    var app = express();

    // Include API V1
    require("./apiv1.js")(app, db);

    app.listen(3000, function(err) {
        if (err) { console.error(err); } else { console.log("Started on *:3000"); }
    });
});

这使我的应用程序在 .connect 函数中完全缩进...这看起来很丑陋并且在我处理项目时占用空间。

我认为最好的解决方案是让 MongoDB 连接同步(即使没有数据库连接,我的应用程序也无法运行,为什么我要在连接时执行某些操作?),然后运行我的其余代码。

我该怎么办?

最佳答案

你不能同步连接到 MongoDB,但是你可以从你的代码中去掉这个丑陋的回调。

最好的方法是在 node-mongodb-native driver 周围采用一些包装器。 .

看看以下模块。


mongojs

var mongojs = require('mongojs');
var db = mongojs('localhost/test');
var mycollection = db.collection('mycollection');

mongoskin

var mongo = require('mongoskin');
var db = mongo.db("mongodb://localhost:27017/test", {native_parser:true});

monk

var monk = require('monk');
var db = monk('localhost/test');
var users = db.get('users')

当然,内部都是异步建立MongoDB连接的。

https://stackoverflow.com/questions/25908688/

相关文章:

python - pymongo-如何为字段以及其他查询参数设置不同的值

mongodb - 在 mongodb 中删除重复文档的最快方法

mongodb - 为什么不用mongodb?

mongodb - 使用 Mongo 集合中的特殊字符

javascript - 如何在 MongoDB 中查询引用的对象?

node.js - 当 mongodb 的好处应该是无模式时,为什么 mongoose 使用模式?

c# - Mongodb -- 使用 c# 驱动程序包含或排除某些元素

Mongodb - 删除数组字段中所有元素的正确方法?

javascript - 如果 .find() mongoose 没有找到任何东西,请执行某些操作

node.js - Node.js 上 MongoDB 连接的最佳实践是什么?