我正在使用express js编写代码,我注意到我在app.js中声明了这一点。
var mongoose = require ('mongoose');
var db =mongoose.connect('mongodb://localhost/testdb');然后在my /model/userSchema.js中
var mongoose = require('mongoose');
var users = mongoose.model('users',UserSchema);
module.exports = users;然而,在我的路线/上载in中
var mongoose = require ('mongoose');
var db =mongoose.connect('mongodb://localhost/testdb');`
//some code
mongoose.model('users').find(); //这知道我正在访问名为"testdb“的数据库
我不知道为什么会像在upload.js和userSchema.js中执行的代码一样知道我使用的数据库是testdb。这个var mongoose =require(‘mongoose’)的声明是不是创建了一个与app.js中的对象分开的新对象?
发布于 2014-05-16 17:18:52
在node.js中,加载了require的模块是缓存,因此在两个不同的文件中调用require('mongoose')返回mongoose模块的同一个实例。
因此,虽然一个文件中的变量不能在其他文件中直接访问,但同一模块中的变量实际上是在require该模块的文件之间共享的。
https://stackoverflow.com/questions/23686872
复制相似问题