如何在 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);
});
}
我想(有点必须)在一个函数内导出,我正在使用 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);
});
}