我目前正在将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
};
在两个出口之外宣布types
和deepPopulate
这是一个好习惯吗?或者我应该在每次出口中声明它们吗?
这个问题的原因是我因为这种做法而发生冲突(为了简化,假设dp(mongoose)
将调用尚未声明的内容)
答案 0 :(得分:0)
你只能有一个'默认'导出到模块,或者您可以有多个名为'每个模块的出口。请参阅以下内容,以获得有关在ES6中处理导出的详细说明:ECMAScript 6 Modules: The Final Syntax