Tôi không nghĩ rằng tôi hoàn toàn hiểu cách exports
hoạt động trong Node.js. Trong một chút mã mẫu, tôi nhận thấy các đối tượng exports
sử dụng theo cách này:Hiểu sự xuất khẩu trong NodeJS
exports = mongoose = require('mongoose')
mongoose.connect(config.db.uri)
exports = Schema = mongoose.Schema
gì đang xảy ra đằng sau hậu trường khi bạn sử dụng exports =
hai lần như thế? Có vẻ như tôi không muốn xuất khẩu "mongoose". Tôi đã làm thử nghiệm nhanh này:
var foo
, bar
exports = foo = 'foo'
exports = bar = 'bar'
// reports 'bar' only
console.log(exports)
và kiểm tra thứ hai không ghi đè xuất khẩu đầu tiên.
Vâng, điều đó thật lạ. Thông thường, bạn sẽ mong đợi một 'exports.foo = 'foo'', v.v. –
Có thể là mongoose.Schema trỏ đến mongoose. –
Tôi chỉ cố gắng tìm ra điều này, và tốt nhất tôi có thể nói, cả 3 dòng đều không làm gì cả. Bằng cách thiết lập đối tượng xuất khẩu, đối tượng xuất khẩu toàn cầu bị mất. Vì vậy, không có gì được xuất ra khỏi tệp này. Điều quan trọng khác là các biến (mongoose & Schema) đang được định nghĩa cho đối tượng toàn cầu. Điều này có vẻ giống như một cách để gắn cờ rằng các biến này sẽ là hình cầu và tệp này sẽ không xuất các biến đó qua giao diện mô-đun. Tôi không thể thấy bất kỳ lý do nào khác để làm điều này. – sujal