我对Node.js和MongoDB都很新,但我已经从SO和mongo的文档中组合了一些部分。
mongo文档中给出了示例:
// Retrieve
var MongoClient = require('mongodb').MongoClient;
// Connect to the db
MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
if(!err) {
console.log("We are connected");
}
});
如果我只需要在一个函数的一个地方使用数据库,那么这看起来很好。在SO上搜索和阅读后,我发现每次不应该打开新连接,而是应该使用池并重复使用第一次获得的数据库对象。这个答案在SO上非常丰富,但我不确定如何首先获取DB对象,然后如何重用它。
假设我在我的App.js中有上面的Node.js代码,然后我有不同的路由需要对数据库运行不同的操作:
app.post('/employee', function(req, res){
//Put req.name in database
});
app.post('/car', function(req, res){
//Put req.car in database
});
我该如何将这两个片段组合成有用的东西?
我在Node.js重用MongoDB引用中找到了一个类似的问题,但从这个(http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html)的样子来看,我应该使用MongoClient而不是db()。而且我也不确定它是否解决了我的问题...
init
函数应该只被调用一次。randomFile.js
只是一个示例,展示了你可以在代码的任何地方使用已初始化的数据库。它同样可以在app.js
中轻松使用。如果你要使用Node进行开发,你一定要理解模块是如何工作的,但它们并不难。 - Bret Copeland