3

在下面的代码中,session.js 和 user.js 中的“db”变量是引用 db.js 中的同一个对象,还是它们的副本(与我的数据库服务器建立单独的连接)?

// db.js
var mongojs = require('mongojs');
var db = mongojs('test', ['users', 'sessions']);
module.exports.database = db;

// session.js
var db = require('../db.js').database;
......

// user.js
var db = require('../db.js').database;
......

谢谢!

4

2 回答 2

3

所需的模块被缓存,因此它们都指向同一个对象。相关 Node.js 文档:模块缓存文档

于 2012-11-12T15:07:22.203 回答
2

每次调用都require('../db.js')返回相同的对象,因此在您的情况下,只会database创建一个连接池。

请注意,这database实际上是一个连接池(默认为 5 个),可以在您的代码中自由共享,因此这可能是您想要的。

请参阅此处的文档。

于 2012-11-12T15:08:35.093 回答