Tôi thường bao gồm một tệp tiện ích dự án có chứa một số thứ này, chỉ để làm cho nó dễ dàng. Nó hoạt động như một toàn cầu giả, nhưng không có nhiều vấn đề thông thường mà toàn cầu gặp phải.
Ví dụ:
projectUtils.js
module.exports = {
initialize: function(next){
// initialization actions, there can be many of these
this.initializeDB(next);
},
initializeDb: function(next){
mongoClient.open(function(err, mongoClient) {
if(err) return next(err);
module.exports.db = mongoClient.db(DB);
next();
});
}
}
app.js
var projectUtils = require('projectUtils');
// (snip)
projectUtils.initialize(function(err) {
if(err) throw err; // bad DB initialization
// After this point and inside any of your routes,
// projectUtils.db is available for use.
app.listen(port);
}
Bằng cách sử dụng hàm khởi tạo không đồng bộ (), bạn có thể chắc chắn rằng tất cả các kết nối cơ sở dữ liệu, I / O tệp, v.v., đều được thực hiện trước khi khởi động máy chủ.