首页 > 解决方案 > 如何将下面的代码移动到它自己的模块中并且仍然能够访问变量 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

标签: javascriptnode.js

解决方案


推荐阅读