ในหน้านี้ ( http://docs.nodejitsu.com/articles/getting-started/what-is-require ) มันระบุว่า "ถ้าคุณต้องการตั้งค่าเอ็กซ์ปอร์ตออบเจ็กต์เป็นฟังก์ชันหรือวัตถุใหม่คุณต้อง ใช้วัตถุ module.exports "
คำถามของฉันคือทำไม
// right
module.exports = function () {
  console.log("hello world")
}
// wrong
exports = function () {
  console.log("hello world")
}ฉัน console.logged ผล ( result=require(example.js)) และคนแรกคือคนที่สองคือ[Function]{}
คุณช่วยอธิบายเหตุผลเบื้องหลังได้ไหม ผมอ่านโพสต์ที่นี่: module.exports เทียบกับการส่งออกใน Node.js มันมีประโยชน์ แต่ไม่ได้อธิบายถึงสาเหตุที่มันถูกออกแบบในลักษณะนั้น จะมีปัญหาหรือไม่หากมีการส่งคืนการอ้างอิงการส่งออกโดยตรง?
exportsตัวอย่างเช่นgithub.com/tj/consolidate.js/blob/master/lib/consolidate.js ?
                module.exportsคุณจะไม่ผิด แต่คุณสามารถใช้exportsถ้าคุณไม่ได้เปลี่ยนวัตถุเริ่มต้นส่งออก, ที่อยู่, var foo = require('foo').fooถ้าคุณเพียงแค่อายัดทรัพย์สินเช่นนี้ นี้fooคุณสมบัติที่สามารถส่งออกเช่นนี้และแน่นอนยังมีexports.foo = ... module.exportsเป็นตัวเลือกส่วนบุคคล แต่ฉันกำลังใช้งานอยู่module.exportsและexportsเหมาะสม
                
module.exportsการใช้งานเสมอ