Tùy chọn 1:Sử dụng đối tượng được chia sẻ
Mã mô hình của tôi trông tương tự, nhưng thay vì liên tục yêu cầu các mô-đun, tôi chỉ yêu cầu chúng một lần khi ứng dụng khởi động và sau đó gán kết quả cho một đối tượng được chia sẻ. Ví dụ:nếu bạn đang sử dụng một ứng dụng express, bạn có thể làm như vậy một cái gì đó như app.locals.models.User = require('./models/user');
. Sau đó, bất kỳ thứ gì có quyền truy cập vào ứng dụng app
có thể xem các mô hình của bạn mà không cần yêu cầu.
Tùy chọn 2:Đảm bảo một sửa đổi duy nhất trong chức năng đã xuất
Bạn có thể xác định mô-đun người dùng của mình như sau:
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema({name: String});
var User = null;
module.exports = function(db) {
if (db && User === null) {
User = db.model('User', userSchema);
}
return User;
};
Khi khởi động ứng dụng của mình, bạn chỉ cần:require('./models/user')(db)
. Các yêu cầu tiếp theo của các mô-đun khác trong ứng dụng của bạn có thể làm giảm db
paramater, với tư cách là User
sẽ chỉ được đặt một lần.