Bạn có thể tạo mongoUtil.js
mô-đun có các chức năng để kết nối với mongo và trả về phiên bản db mongo:
const MongoClient = require( 'mongodb' ).MongoClient;
const url = "mongodb://localhost:27017";
var _db;
module.exports = {
connectToServer: function( callback ) {
MongoClient.connect( url, { useNewUrlParser: true }, function( err, client ) {
_db = client.db('test_db');
return callback( err );
} );
},
getDb: function() {
return _db;
}
};
Để sử dụng nó, bạn sẽ thực hiện việc này trong app.js
của mình :
var mongoUtil = require( 'mongoUtil' );
mongoUtil.connectToServer( function( err, client ) {
if (err) console.log(err);
// start the rest of your app here
} );
Và sau đó, khi bạn cần truy cập vào mongo ở một nơi khác, chẳng hạn như trong .js
khác tệp, bạn có thể làm điều này:
var mongoUtil = require( 'mongoUtil' );
var db = mongoUtil.getDb();
db.collection( 'users' ).find();
Lý do điều này hoạt động là trong nút, khi mô-đun require
d, chúng chỉ được tải / lấy nguồn một lần nên bạn sẽ chỉ kết thúc với một phiên bản của _db
và mongoUtil.getDb()
sẽ luôn trả về cùng một phiên bản.
Lưu ý, mã không được kiểm tra.