将HTTP GET请求抽离至外部JS文件时报"not a function"错误求助
解决TypeError: MSWratings.Ratings is not a function的问题
嘿,这个问题我一眼就看出来啦——你在模块导出的时候犯了一个常见的小错误!
问题根源
你在MSWratings.js里连续两次给module.exports赋值:
module.exports = {Ratings}; module.exports = {TestFunction};
在Node.js里,module.exports本质上是一个对象,第二次赋值会完全覆盖第一次的内容。也就是说,你的模块最终只导出了TestFunction,Ratings函数根本没被导出,所以在server.js里调用MSWratings.Ratings()时,自然会报“不是函数”的错误。
修复方案
只需要把两个函数合并到同一个导出对象里,或者用exports逐个导出就行,两种方法都能解决问题:
方法一:合并到同一个module.exports对象
修改MSWratings.js的最后两行,把两个函数放在同一个导出对象中:
module.exports = { Ratings, TestFunction };
方法二:使用exports逐个导出
也可以用这种方式(效果和上面完全一致):
exports.Ratings = Ratings; exports.TestFunction = TestFunction;
验证修改
调整完MSWratings.js后,重新运行server.js,你会发现Ratings函数和TestFunction都能正常调用了,HTTP请求也能顺利执行啦。
内容的提问来源于stack exchange,提问作者Berlingo
相关产品推荐
相关产品推荐

