Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js routes、Express和node js中的函数是否可以访问app.js中定义的变量?_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js routes、Express和node 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

我当时正在使用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',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
模块的相同实例

因此,虽然一个文件中的变量无法在其他文件中直接访问,但同一模块中的变量在
需要该模块的文件之间有效共享