为什么运行Node.js代码时会出现TypeError: test2.myFunc is not a function错误?
为什么运行Node.js代码时会出现TypeError: test2.myFunc is not a function错误?
嘿,我来帮你排查这个问题~
咱们先拆解下代码逻辑:在test1.js里,你是直接把myFunc函数本身作为模块导出的:
// test1.js 中的导出逻辑 module.exports = myFunc;
这就意味着,当你在test2.js里用const test2 = require('./test1.js')引入模块时,test2这个变量就是myFunc函数本身,而不是一个包含myFunc属性的对象。所以你用test2.myFunc()去调用时,自然会报错——因为函数本身并没有myFunc这个属性呀!
有两种简单的解决办法,你可以根据需求选其中一种:
方法一:修改test2.js的调用方式
既然test2就是myFunc函数,直接调用它就行:
// test2.js 修改后 const test2 = require('./test1.js'); console.log(test2()); // 直接调用test2,因为它就是myFunc函数本身
方法二:修改test1.js的导出方式
如果想保留test2.myFunc()的调用写法,那你需要把myFunc作为对象的一个属性导出:
// test1.js 修改后 const myFunc = () => { return "Hello World!"; }; module.exports = { myFunc }; // 导出包含myFunc属性的对象
这样再运行node test2,就能正常输出Hello World!啦~
备注:内容来源于stack exchange,提问作者Crowdpleasr
相关产品推荐
相关产品推荐

