初学Nodejs,在运行一个小项目时出现问题,报错如下:
原文件如下:
主入口文件:index.js
出错文件:klass.js
刚开始也找不出问题出在哪里,经过多方查阅资料和不断的尝试,最终找到问题源在以下两句上:
exports.add=add;
module.exports=add;
因为同时使用了这两句,使得add方法找不到,具体原因在于exports与module.exports的区别:
Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。
exports挂载属性和方法再赋给module.exports
如果你的模块是一个特定的类型就用Module.exports。如果你的模块是一个典型的“实例化对象”就用exports
对于题主遇到的情况,只需要将add方法挂载在exports上,去掉第二句就可以解决了。