2013-03-17 26 views
5

Trong khi xem xét một số câu trả lời Stackoverflow cho các câu hỏi về tách dữ liệu mô hình, tôi thấy hai định dạng khác nhau. Xem dưới đây:Tại sao nên sử dụng model.export trong các tệp mô hình riêng biệt?

var UserSchema = mongoose.Schema({ 
    name: String 
}) 

module.exports = mongoose.model('User', UserSchema); 

so với phương pháp này:

var UserSchema = mongoose.Schema({ 
    name: String 
}) 

mongoose.model('User', UserSchema); 

sự khác biệt giữa việc sử dụng module.exports... so với chỉ sử dụng mongoose.model... là gì?

Trả lời

11

mongoose.model trả lại Model nó xác định. Đặt nó là module.exports cho phép bạn dễ dàng tạo các phiên bản của Model, mà không cần lấy nó từ kết nối.

a.js

var User = require('./b'); 
var myUser = new User; 

b.js

var UserSchema = mongoose.Schema({ 
    name: String 
}) 

module.exports = mongoose.model('User', UserSchema); 

... lưu ý làm thế nào tôi có thể trực tiếp gọi new User (sau khi thiết Userrequire('./b') ... đây là những gì module.exports cho phép tôi làm. Lưu ý đây không phải là một phần của mongoose mỗi lần, nhưng của Nodes module system.

Các vấn đề liên quan