javascript - 如何将下面的代码移动到它自己的模块中并且仍然能够访问变量 gfs?
问题描述
当下面的代码在我的 app.js 中时,我可以很好地访问 gfs 变量。但是我无法弄清楚为什么要在下面移动到它自己的模块
// app.js
const conn = mongoose.createConnection("myURL");
let gfs;
conn.once('open', () => {
gfs = Grid(conn.db, mongoose.mongo);
gfs.collection('collectionName');
})
这是我对自己模块的失败尝试
// database.js
const connectDB = () => {
const conn = mongoose.createConnection("myURL");
let gfs;
conn.once('open', () => {
gfs = Grid(conn.db, mongoose.mongo);
gfs.collection('uploads');
return gfs;
})
}
module.exports = connectDB
// app.js
const connectDB = require('./database');
let gfs = connectDBImage();
// gfs would be undefine here
// i try using async function but ended up with a promise with nothing inside
解决方案
推荐阅读
- android - 观察者获取数据后返回空数组
- android - com.google.firebase.FirebaseException:发生内部错误。[API 密钥无效。请传递有效的 API 密钥。] Android、Firebase、Google Auth
- java - 为什么 Spring Boot 应用程序在 Azure Web 应用程序上部署后不起作用
- spring - Spring Security 与微服务的问题
- docker - 从 Docker Toolbox 访问本地机器上运行的 kafka。?
- android - Android react-native 显示MyUserLocation 没有出现
- c++ - 获取图像上特定位置的对象点云
- java - Java 图形 AWT
- githooks - 如何过滤 git hook post-commit 到特定文件?
- java - 如何从 Android 中的 Firebase 中获取基于不同子项的总数据