Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Berkongsi Sambungan Pangkalan Data dengan Cekap Merentas Modul Node.js?
Mengekalkan sambungan pangkalan data yang konsisten adalah penting untuk operasi lancar aplikasi Node.js. Untuk mengelakkan keperluan untuk mewujudkan semula sambungan beberapa kali, adalah penting untuk melaksanakan strategi yang memastikan perkongsian sambungan merentas modul yang berbeza.
Pendekatan yang diterangkan dalam pertanyaan asal, yang melibatkan penciptaan objek pusat yang menguruskan pangkalan data sambungan dan pengedarannya kepada modul, adalah cacat. Sebaliknya, adalah disyorkan untuk menggunakan penyelesaian berasaskan modul.
Modul ini bertindak sebagai repositori berpusat untuk pengurusan sambungan pangkalan data. Ia mentakrifkan fungsi untuk kedua-dua mewujudkan sambungan kepada MongoDB dan mendapatkan semula contoh pangkalan data.
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; } };
Dalam fail aplikasi utama, app.js, modul mongoUtil ialah diimport dan fungsi connectToServer digunakan untuk mewujudkan sambungan pangkalan data.
var mongoUtil = require( 'mongoUtil' ); mongoUtil.connectToServer( function( err, client ) { if (err) console.log(err); // start the rest of your app here } );
Dalam modul atau fail lain, modul mongoUtil boleh diimport untuk mendapatkan semula perkongsian contoh pangkalan data menggunakan fungsi getDb.
var mongoUtil = require( 'mongoUtil' ); var db = mongoUtil.getDb(); db.collection( 'users' ).find();
Dengan memanfaatkan pendekatan berasaskan modul ini, anda memastikan semua modul dalam aplikasi anda mempunyai akses kepada sambungan pangkalan data tunggal yang dikongsi, tanpa memerlukan berbilang sambungan dan potensi tidak konsisten.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berkongsi Sambungan Pangkalan Data dengan Cekap Merentas Modul Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!