module.exports 和 exports 有什么区别和优劣
时间: 2024-06-06 13:03:07 浏览: 236
在 Node.js 中,每个文件都被视为一个模块。模块可以通过 module.exports 和 exports 对象向外部暴露变量、函数或对象。它们的区别在于:
1. module.exports 是 exports 的实际值,也就是说它是真正暴露给外部的对象,而 exports 只是对 module.exports 的引用。当你直接给 exports 赋值时,它不再指向 module.exports,所以无法暴露任何东西。
2. 当你给 exports 对象添加属性或方法时,它会被添加到 module.exports 上,而不是直接暴露给外部。因此,如果你想暴露一个对象而不是单个属性或方法,则必须使用 module.exports。
3. 如果你想将一个函数或对象赋给 module.exports,可以直接使用赋值运算符,但如果你想将多个属性或方法添加到 exports 上,则必须使用 module.exports。
总的来说,module.exports 更加灵活,可以直接赋值一个函数或对象,而 exports 只能通过添加属性或方法的方式向外部暴露内容。但是,在实际开发中,使用哪个取决于个人习惯和需求。
阅读全文