javascript - 特定文件中的导入函数返回 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 的方法引用,但是今天下午我添加了更多引用,它破坏了应用程序。
解决方案
有一件事我没有看到,在导出到 CompanyUtil.js 后,您是否需要 ScrapNames.js 文件。
如果您还没有这样做,请尝试这样做,因为这可能是原因(我认为)。同样,您的命名约定不应以大写字母开头文件名的第一个字母。
代码片段将更全面地解决您的问题。
推荐阅读
- java - 如何在 Android 中使用 Google Drive API 更新文件夹?
- c++ - BatchNormalization 层构建
- sql-server - SSAS 的可编程性如何?
- python - 如何创建两个矩形之间发生碰撞的矩形
- python - 对df中的唯一值执行分组计数的有效方法
- reactjs - React-验证数据库中是否有用户
- cmake - 如何构建取决于目标 A 的执行和输出的目标 B
- crystal-reports - Visual Studio 2019 和水晶报告的问题
- c# - 将自定义 IFileProvider 添加到依赖于另一个 DI 服务的 RazorViewEngineOptions
- python - 有没有办法修复我的程序,因为它没有正确添加