ES6导入内部导出默认值

时间:2017-10-30 18:05:10

标签: javascript node.js mongoose ecmascript-6 babel

我目前正在将NodeJS应用程序的整个代码从ES5迁移到ES6 / 7。

我在进口方面遇到麻烦:

首先,我了解导入直接调用该文件。例如:

import moduleTest from './moduleTest';

此代码将进入moduleTest.js并执行它。

所以,真正的问题是关于这段代码:

import mongoose from 'mongoose';
import autopopulate from 'mongoose-autopopulate';
import dp from 'mongoose-deep-populate';

import { someUtils } from '../utils';

const types = mongoose.Schema.Types;
const deepPopulate = dp(mongoose);

export default () => {
    // DOES SOMETHING USING types AND deepPopulate
    return someThing;
};

export const anotherModule = () => {
  // ALSO USE types and deepPopulate
};

在两个出口之外宣布typesdeepPopulate这是一个好习惯吗?或者我应该在每次出口中声明它们吗?

这个问题的原因是我因为这种做法而发生冲突(为了简化,假设dp(mongoose)将调用尚未声明的内容)

1 个答案:

答案 0 :(得分:0)

你只能有一个'默认'导出到模块,或者您可以有多个名为'每个模块的出口。请参阅以下内容,以获得有关在ES6中处理导出的详细说明:ECMAScript 6 Modules: The Final Syntax