在我的应用程序中,我将 node.js 与 mongoDB 一起使用。下面是我的示例代码。
var mongodb = require('mongodb');
var server = new mongodb.Server("localhost", 27017, {});
new mongodb.Db('test', server, {w: 1}).open(function (error, client) {
if (error) throw error;
var collection = new mongodb.Collection(client, 'test_collection');
collection.insert({hello: 'world'}, {safe:true},
function(err, objects) {
if(!err){
console.log('Data inserted successfully.');
}
if (err && err.message.indexOf('E11000 ') !== -1) {
// this _id was already inserted in the database
}
});
});
现在我需要应用程序中其他模块的 mongoDB 实例。我该如何执行此操作。
最佳答案
一个简单的方法,如果我们假设您发布的代码位于 app.js 中,您可以将第 2 行重写为:
var server = exports.db = new mongodb.Server("localhost", 27017, {});
在需要访问实例的模块中只需编写:
require('app').db
更常见的方法可能是将共享内容放入 settings.js 文件中或拥有专用的数据库接口(interface)模块。
更新
要访问打开的客户端,您需要以相同的方式公开客户端:
new mongodb.Db('test', server, {w: 1}).open(function (error, client) {
exports.client = client;
// ...
});
关于node.js - 如何使 mongoDB 实例可用于 Node.js 中的所有其他模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15470895/