首页 > 解决方案 > 特定文件中的导入函数返回 TypeError: X is not a function but it works in other files

问题描述

我正在使用 Node.JS 12 LTS

有一个名为 CompanyUtil.js 的文件和另一个名为 ScrapNames.js 的文件

在 ScrapNames.js - 我使用 module.exports = { ParseName: ParseName, etc } 语法导出了多个方法,并将 ParseName 方法导入到 CompanyUtil.js

导出的 ParseName 方法是 ScrapNames.js 中的一个异步函数

CompanyUtil.js 在尝试执行 ParseName 方法时输出 TypeError: ParseName is not a function;但是,相同的 ParseName 方法适用于我测试的其他文件。

我使用的函数导入语法:

const { ParseName } = require('./ScrapNames.js')

这是我在导入后如何称呼它:

async function main() {
 let name = await ParseName("Steve Jobs")
 return name
}

到目前为止,我已经重新启动了我的计算机并删除了 CompanyUtil.js 并重新添加了它,但没有运气。

我需要补充一点,ScrapNames.js 还使用了 CompanyUtil.js 中的三种方法

这与 CompanyUtil 名称有关吗?也许是循环依赖?

令我惊讶的是,这个方法在今天早上对该文件有效,而 ScrapNames.js 只有大约两个对 CompanyUtil.js 的方法引用,但是今天下午我添加了更多引用,它破坏了应用程序。

标签: javascriptnode.jsfunctionmethodsimport

解决方案


有一件事我没有看到,在导出到 CompanyUtil.js 后,您是否需要 ScrapNames.js 文件。

如果您还没有这样做,请尝试这样做,因为这可能是原因(我认为)。同样,您的命名约定不应以大写字母开头文件名的第一个字母。

代码片段将更全面地解决您的问题。


推荐阅读