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

标签 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在导入 listen.js 之前,在我的 index.js 中。为什么看不到?

顺便说一句,db 这里只是引发错误的众多变量之一。

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

最佳答案

import 语句用于导入由另一个模块导出的绑定(bind)。

更多请查看:developer.mozilla.org/.../Statements/import

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

关于javascript - Node.js:拆分代码的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47659598/

相关文章:

javascript - UTC( Elasticsearch )到 MomentJs 本地时间

Node.js - 在 Cheerio 中使用回调函数

node.js - Multer fileFilter 未被调用且 req.body 为空

javascript - 使用 array.map() 从对象数组中查找元素

javascript - 为什么 let 语句的行为与 var 如此不同?

javascript - Parse.Cloud.beforeSave 无法在正在创建的对象上设置新字段

javascript - 将表单数据加载到字符串中然后加载到本地存储的最佳方法是什么?

javascript - React/Javascript - 需要一个更好的进度条逻辑解决方案

javascript - event.preventDefault() 和重定向 asp mvc/jQuery

javascript - Javascript ES6 类中的 'this.name' 可以只是 'name' 吗?