Node.js routes、Express和node js中的函数是否可以访问app.js中定义的变量?
我当时正在使用express js进行编码,我注意到我在app.js中声明了这一点Node.js routes、Express和node js中的函数是否可以访问app.js中定义的变量?,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我当时正在使用express js进行编码,我注意到我在app.js中声明了这一点 var mongoose = require ('mongoose'); var db =mongoose.connect('mongodb://localhost/testdb'); 然后在my/models/userSchema.js中 var mongoose = require('mongoose'); var users = mongoose.model('users',UserSche
var mongoose = require ('mongoose');
var db =mongoose.connect('mongodb://localhost/testdb');
然后在my/models/userSchema.js中
var mongoose = require('mongoose');
var users = mongoose.model('users',UserSchema);
module.exports = users;
但是在my routes/upload.js中
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中的对象不同的新对象 猫鼬是独生子。当您再次需要它时,您将获得第一次初始化的实例
应用程序级别变量在其他模块中不可见。不过,有一些方法可以传递app对象I 在node.js中,加载了
require
的模块是这样的:在两个不同的文件中调用require('mongoose')
会返回mongoose
模块的相同实例
因此,虽然一个文件中的变量无法在其他文件中直接访问,但同一模块中的变量在需要该模块的文件之间有效共享