在下面的代码中,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;
......
谢谢!
答案 0 :(得分:2)
高速缓存必需的模块,因此它们都指向同一个对象。相关的Node.js文档:Modules caching docs。
答案 1 :(得分:1)
每次调用require('../db.js')
都会返回相同的对象,因此在您的情况下,只会创建一个database
连接池。
请注意,database
实际上是一个连接池(默认为5个),可以在您的代码中自由共享,因此这很可能是您想要的。
请参阅文档here。