Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 导出已在导出函数中使用的变量_Javascript_Node.js_Mongodb_Ecmascript 6 - Fatal编程技术网

Javascript 导出已在导出函数中使用的变量

Javascript 导出已在导出函数中使用的变量,javascript,node.js,mongodb,ecmascript-6,Javascript,Node.js,Mongodb,Ecmascript 6,我试图在一个单独的文件中初始化我的mongodb。我在函数中编写初始化并导出函数。现在,我还想导出写在该函数中的db。我该怎么做 我想做这样的事 import { MongoClient } from 'mongodb'; import config from '../../config'; import logger from '../../logger'; const connectDB = async () => { const client = new MongoClie

我试图在一个单独的文件中初始化我的mongodb。我在函数中编写初始化并导出函数。现在,我还想导出写在该函数中的db。我该怎么做

我想做这样的事

import { MongoClient } from 'mongodb';
import config from '../../config';
import logger from '../../logger';

const connectDB = async () => {
    const client = new MongoClient(config.dbUri, {
        userNewUrlParser: true,
         useUnifiedTopology: true,
    });

    try {
        await client.connect();
        const db = client.db('sample_mflix');
        logger.info('Connected to Database');
    } catch (e) {
        logger.error(e);
    } finally {
        await client.close();
    }
};
export default {
    connectDB,
    db,
};

如果是我,我会避免默认导出,并执行以下操作:

import { MongoClient } from 'mongodb';
import config from '../../config';
import logger from '../../logger';

export let db;

export const connectDB = async () => {
    const client = new MongoClient(config.dbUri, {
        userNewUrlParser: true,
         useUnifiedTopology: true,
    });

    try {
        await client.connect();
        db = client.db('sample_mflix');
        logger.info('Connected to Database');
    } catch (e) {
        logger.error(e);
    } finally {
        await client.close();
    }
};
或者如果你想要一个更好的错误

import { MongoClient } from 'mongodb';
import config from '../../config';
import logger from '../../logger';

let db;

export const getDB = () => {
  if (!db) {
    throw new Error("DB Not yet connected");
  }
  return db;
}

export const connectDB = async () => {
    const client = new MongoClient(config.dbUri, {
        userNewUrlParser: true,
         useUnifiedTopology: true,
    });

    try {
        await client.connect();
        db = client.db('sample_mflix');
        logger.info('Connected to Database');
    } catch (e) {
        logger.error(e);
    } finally {
        await client.close();
    }
};