![](/img/trans.png)
[英]Node.js / Express - How to get variables defined in app.js in routes/index.js?
[英]Are the variables defined in app.js accessible to the functions in routes, in Express and node js?
我正在使用Express JS进行编码,我注意到我在app.js中声明了这一点
var mongoose = require ('mongoose');
var db =mongoose.connect('mongodb://localhost/testdb');
然后在我的/models/userSchema.js中
var mongoose = require('mongoose');
var users = mongoose.model('users',UserSchema);
module.exports = users;
但是在我的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中的对象分开的新对象?
猫鼬是单身人士。 那就是当您再次需要它时,您将得到首次初始化的实例。
应用程序级别变量在其他模块中不可见。 虽然有一些方法可以传递我的应用程序对象,但我可以通过这些模块。
在node.js中,加载了require
模块被缓存,以便在两个不同的文件中调用require('mongoose')
返回mongoose
模块的相同实例。
因此,虽然一个文件中的变量不能在其他文件中直接访问,但是同一模块内的变量在require
该模块的文件之间有效地共享。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.