首页 > 解决方案 > 节点模块:module.exports 和 require() 不适用于本地模块

问题描述

所以我试图将“ helper.js ”中的“ add ”函数添加到“ app.js ”中。这两个文件在同一个文件夹中。

问题是我不断收到错误: ReferenceError: add is not defined

你能帮我理解我做错了什么吗?

随附的屏幕截图显示了事情的样子。

谢谢你。

我的 VS 代码的屏幕截图显示了文件和代码

标签: javascriptnode.js

解决方案


当您导入另一个模块时,您不会导入在另一个模块中声明的标识符- 您只导入分配给module.exports. 在这里,就是f.

你需要:

const add = require('./helper');
add(3, 5);

或者

const f = require('./helper');
f(3, 5);

如果另一个模块将函数分配给全局对象(这真的很奇怪,addrequire应该在模块系统中完成,除非在极少数情况下)将模块命名空间分配给窗口时,就像 jQuery 和其他库一样)。


推荐阅读