为什么在Node.js中需要module.exports以及如何正确使用它?
大家好!我刚开始学习Node.js,完全搞不懂module.exports是什么以及为什么需要它。我好像读过文档,但还是会混淆。
假设我有一个文件`math.js`,里面写了简单的加法和乘法函数:
```javascript
function add(a, b) {
return a + b;
}
function multiply(a, b) {
return a * b;
}
```
在另一个文件`app.js`中,我想使用这些函数:
```javascript
console.log(add(2, 3)); // 错误:add is not defined
```
但遇到了错误。我知道需要某种方式“导出”函数,但不理解`module.exports`和`exports`之间的区别,以及为什么不能直接使用全局变量。
另外,我看到有些人写`module.exports = { ... }`,而另一些人写`exports.functionName = ...`。哪种方式是正确的?如果我写`module.exports = function() { ... }`会怎样?
请用简单的例子解释一下这是如何工作的,以及什么时候该用哪种方式。