Как установить модуль googlemaps в Google App Engine

Лучший подход к реализации пула соединений - это создать одну глобальную переменную массива, которая будет содержать имя db с объектом соединения, возвращаемым MongoClient, и затем повторно использовать это соединение, когда вам нужно связаться с базой данных.

  1. In ваш Server.js определит var global.dbconnections = [];
  2. Создайте имя именования сервисовService.js. Он будет иметь 2 метода getConnection и createConnection. Поэтому, когда пользователь будет вызывать getConnection (), он найдет детали в глобальной переменной соединения и вернет данные соединения, если уже существует, иначе он вызовет createConnection () и вернет сведения о соединении.
  3. Вызовите эту службу, используя имя db_ и будет возвращать объект соединения, если он уже имеет другое, он создаст новое соединение и вернет его вам.

Надеюсь, что это поможет:)

Вот код connectionService.js :

var mongo = require('mongoskin');
var mongodb = require('mongodb');
var Q = require('q');
var service = {};
service.getConnection = getConnection ;
module.exports = service;

function getConnection(appDB){
    var deferred = Q.defer();
    var connectionDetails=global.dbconnections.find(item=>item.appDB==appDB)

    if(connectionDetails){deferred.resolve(connectionDetails.connection);
    }else{createConnection(appDB).then(function(connectionDetails){
            deferred.resolve(connectionDetails);})
    }
    return deferred.promise;
}

function createConnection(appDB){
    var deferred = Q.defer();
    mongodb.MongoClient.connect(connectionServer + appDB, (err,database)=> 
    {
        if(err) deferred.reject(err.name + ': ' + err.message);
        global.dbconnections.push({appDB: appDB,  connection: database});
        deferred.resolve(database);
    })
     return deferred.promise;
} 
2
задан Adham Enaya 26 March 2019 в 22:31
поделиться