Node.js:分割代码的正确方法是什么?

时间:2017-12-05 17:42:49

标签: javascript node.js ecmascript-6 project-structure

我的index.js文件有很多代码可以分成很多部分。

基本上它看起来像这样:

importing many dependencies;
importing many custom functions;

defining constants;

setting up express;
setting up apollo-server;

post-request #1
get-request #1
requests....

app.listern on port

我希望我的index.js文件包含仅导入

为此,我将我的代码拆分为许多.js文件。大多数文件都没有导出任何内容,但表示为像我这样的一段代码:

// it's a listen.js file
db.sequelize.sync().then(function() {
  app.listen(process.env.PORT || 3000);
});

我使用es6语法导入它(我导入整个文件):

import './core/api/rest/listen'

并收到错误:

db is not defined

我理解为什么它未在listen.js中定义,因为我没有将其导入listen.js,但我在db之前导入了index.js导入listen.js。为什么它不可见?

BTW,db这里只是引发错误的众多变量之一。

如果我错了,请纠正我,但我认为如果我在index.js中导入所有变量/常量/依赖项,则所有这些变量都可以被导入的文件访问

1 个答案:

答案 0 :(得分:1)

导入语句用于导入另一个模块导出的绑定。

请参阅更多内容:developer.mozilla.org/.../Statements/import

您需要导出要导入的类/函数/变量