【问题标题】:Node exports across 3 files跨 3 个文件的节点导出
【发布时间】:2018-07-18 18:51:30
【问题描述】:

我有一个这种格式的文件结构:

index.js - 需要下面的文件

accounts.js 事件.js irc.js

Index 是由 nodejs 打开的文件,accounts 里面有很多与账户系统相关的有用代码, events 包含与 IRC 和账户无关的东西的事件处理代码,但 irc 发起了与 IRC 服务器的连接,但也包含一些有用的代码来打印通过我所做的 ErrorLog 函数发生的任何错误。

我在 index.js 文件中需要 irc.js,但我也想在 accounts.js 以及 events.js 中使用 ErrorLog 函数,并且将来可能需要更多文件,这是在我需要 irc.js 之后需要的.

我怎样才能使 irc.js 只包含一次(因此连接代码不会被多次触发)但可以在所有其他 JS 文件中使用?

【问题讨论】:

  • 最迷惑的部分还是没有答案,请看下面我的回复

标签: javascript node.js modular


【解决方案1】:

您可以将打开的连接保存在 irc.js 文件中的变量中。

 let connection;

 export const getConnection = () => {
   if (!connection) connection = IRC.createConnection("XXXX");
   return connection; 
 }

然后每次你从 'irc' 导入 {getConnection} 你都会得到相同的连接。

【讨论】:

  • 谢谢,但是我怎样才能在 events.js 和 accounts.js 中使用我的 ErrorLog 函数呢?我是否必须在每个文件中单独要求它们?我将如何编写函数的导出代码?
  • @nootskej 我认为您应该阅读有关提供程序和实例之间的区别 Shai 给您的是提供程序getConnection(),它提供了实例connection。您可以阅读 JavaScript 开发人员如何处理提供程序和工厂(使用 Angular 等库)并在您的代码中使用相同的模式。
猜你喜欢
  • 1970-01-01
  • 2012-11-25
  • 2018-03-12
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多