ในหน้านี้ ( 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
การใช้งานเสมอ