如何在 ES6 的函数内部导出

how to export inside a function in ES6

我想(有点必须)在一个函数内导出,我正在使用 nodejs 并且更喜欢使用 ES6。 我想连接到 mongodb 然后导出数据库,并在其他地方使用它。所以我必须在回调函数中导出数据库。这是我的代码:

mongodb.connect(connectionString, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client)=>{
    export default client.db();
    app.listen(port);
 });

但是当我尝试时,我得到了这个错误:

SyntaxError: Unexpected token 'export'

那么如何正确导出我的数据库?

看来我们不能在ES6 中进行动态导出。 导出我们用于连接数据库的异步函数结果的最佳方法是使用“promises”。

export default new Promise((resolve, reject) => {
    mongodb.connect(uri, { useUnifiedTopology: true, useNewUrlParser: true }, (err, client) => {
        if (err)
            reject(err);
        resolve(client.db());
        app.listen(port);
    });
});

然后我们就可以在consumer文件中导入,如下使用:

import dbPromise from './db.js'
function someFunction() {
   dbPromise.then((result) => {
      //if we want to insert some data to database
      result.collection('collectionName').insertOne(data);
   });
}