node.js - 如何将方法分成不同的文件,然后将它们捆绑在一个文件中以要求这样做
问题描述
假设您想构建一个包含不同方法的文件。例如:bundler.js
需要方法的文件a()
, b()
, c()
. 但是这些方法非常复杂并且需要很多代码行,因此最好将这些方法分离到自己的文件中。所以你有文件a.js
,b.js
和c.js
。文件a.js
看起来像:
module.exports = {
a: data => console.log(data)
}
文件 b 和 c 看起来完全一样,现在您想在bundle.js
文件中使用它们。
我的问题:它们都与同一个实例相关 ->Bundle()
由 提供bundle.js
,但是当我需要它们时,bundle.js
它们都将具有相同的变量名来遵循逻辑声明。
let bundle = require('./a.js');
let bundle = require('./b.js');
let bundle = require('./c.js');
bundle.a();
bundle.b();
bundle.c();
但是当我正确理解nodejs(以及我猜的其他一些编程语言)时,那是行不通的。我需要一个单独的层来捆绑这些方法并再次导出它。所以我需要这个层一次,并且可以访问所有方法。但我不知道那层会是什么样子。
有人能帮我吗?
非常感谢您的建议。
解决方案
好的,这里有几件事要注意。1)您的require
陈述没有正确完成。bundle
每次您需要时,该变量基本上都会被覆盖。你会做这样的事情:
let bundleA = require('./a.js');
let bundleB = require('./b.js');
let bundleC = require('./c.js');
这样,您的bundle
变量就不会每次都被覆盖。现在,谈谈你真正要问的问题。你会想要创建一个文件,在这种情况下bundle.js
,它看起来像这样:
// your bundle.js
const a = require('./a.js')
const b = require('./b.js')
const c = require('./c.js')
exports.bundledA = function() {
return a;
}
exports.bundledB = function() {
return b;
}
exports.bundledC = function() {
return c;
}
现在你有一个bundle.js
你可以包含的。所以下一步就是使用它,如下所示:
// Some file
const bundle = require('./bundle')
// Using method A
bundle.bundledA()
希望这一切都说得通。如果您有任何问题,请随时在评论中说出来,我会尽力解释。这里还有一个链接,用于导出和创建您自己的模块,您应该阅读:
https://www.sitepoint.com/understanding-module-exports-exports-node-js/
快乐编码:-)
推荐阅读
- apache-kafka - Kafka 连接器 - 独立模式
- powershell - 批处理文件输出问题
- azure-pipelines - YAML Pipeline 可以检测云与自托管构建吗?
- jsoup - 如何使用以 a 开头的 JSoup 解析片段?
- javascript - JS Intl.DateTimeFormat 小时从 7 开始
- javascript - 在对象数组中搜索匹配项。JS
- r - 如何使用 scale_y_datetime 中断时间 1 小时
- python - Heroku 数据库迁移错误 (django.db.utils.DataError)
- python - 使用 Python SDK 对 Azure CLI 进行身份验证
- laravel - 我怎样才能急切地加载一组以前在 Laravel 模型中指定的关系?