Menggunakan semula Sambungan MongoDB dalam Aplikasi Node.js
Dalam aplikasi Node.js, mengurus sambungan pangkalan data dengan cekap adalah penting untuk prestasi dan kebolehskalaan. Salah satu amalan terbaik ialah berkongsi sambungan MongoDB yang sama sepanjang aplikasi untuk mengelakkan berbilang sambungan dan meningkatkan kecekapan. Walau bagaimanapun, pendekatan optimum untuk perkara ini boleh mengelirukan.
Cadangan Pendekatan dan Kelemahannya
Satu pendekatan yang dicadangkan ialah mewujudkan sambungan pangkalan data dalam fail server.js utama dan lulus objek sambungan ke modul lain. Pendekatan ini mempunyai kelebihannya kerana ia membolehkan anda menggunakan semula sambungan dalam modul dan memastikan ia terbuka. Walau bagaimanapun, ia juga menimbulkan beberapa masalah:
Pendekatan yang Diperbaiki Menggunakan Modul
Untuk meningkatkan pendekatan di atas, adalah disyorkan untuk mencipta modul utiliti pangkalan data khusus yang merangkum proses sambungan dan menyediakan kaedah untuk mendapatkan semula contoh pangkalan data MongoDB.
Berikut ialah contoh modul sedemikian (mongoUtil.js):
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 app.js, anda boleh menyambung ke pangkalan data dan memulakan aplikasi:
var mongoUtil = require('mongoUtil'); mongoUtil.connectToServer( function( err, client ) { if (err) console.log(err); // start the rest of your app here } );
Dalam modul lain, anda boleh mengakses contoh pangkalan data seperti:
var mongoUtil = require('mongoUtil'); var db = mongoUtil.getDb(); db.collection('users').find();
Faedah:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Semula Sambungan MongoDB dengan Cekap dalam Aplikasi Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!