我想先连接到 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 周围采用一些包装器。 .
看看以下模块。
var mongojs = require('mongojs');
var db = mongojs('localhost/test');
var mycollection = db.collection('mycollection');
var mongo = require('mongoskin');
var db = mongo.db("mongodb://localhost:27017/test", {native_parser:true});
var monk = require('monk');
var db = monk('localhost/test');
var users = db.get('users')
当然,内部都是异步建立MongoDB连接的。
https://stackoverflow.com/questions/25908688/