在节点中导出模块时出现问题:函数未正确导出

Problem exporting module in node: functions not exported correctly

我有一个模块,其中有一个 index.js 文件和 2 个具有功能的不同实用程序文件。

索引有:

const utl = require('./tools');
const updt = require('./update');

虽然两个文件都有一个版本(这是 update.js 导出):

module.exports = { 
    updateResults, 
    addTeamIDsToArray, 
    updateTeamStats,
    retrieveRankings, 
    numbOfWeeksToToday }

并且 tools.js 出口:

   module.exports = {
    add_weeks,
    format_date,
    waitForMe, 
    chooseWinner
    }

但是,当我检查 index.js 文件中的两个常量时,其中一个是空的:

    console.log(updt)
    console.log(utl)

输出:

    {}
    {
      add_weeks: [Function: add_weeks],
      format_date: [Function: format_date],
      waitForMe: [Function: waitForMe],
      chooseWinner: [Function: chooseWinner]
    }

为什么我的更新文件没有正确导出?

我假设你的意思是两个文件具有相同的 module.exports ?

如果不查看“tools”目录中的内容,就不可能回答这个问题,因为它似乎表现正确;返回从文件导出的内容的对象 - 在本例中为空对象。 (原因:OP 添加了详细信息)

如果有任何安慰的话,我认为您总体上是正确的。这让我想知道一些事情!

  • 您尝试过更改文件名吗?
  • 使用不同的导入方法? (ESM import x from "x" / await import("x"))
  • 创建一些对象随机对象(我们称之为obj = { updateResults, addTeamIDsToArray, ...}),添加所有导出的项目,然后module.exports = obj?
  • 解构导入以进一步调试?例如:const { updateResults } = reqiure("./tools") ?
  • 很明显但是确保相对路径"./tools"是正确的?

这些只是一些要检查或尝试的东西,只是为了检查。

最后但并非最不重要的一点是,关掉它然后再打开它以确保我们涵盖所有内容。