UNPKG

3.06 kBJavaScriptView Raw
1var mongoose = require('mongoose');
2var promise = require('promise');
3mongoose.Promise = promise;
4
5var db = {};
6db.connect = function(contratante, aplicacao, callback_success, callback_error) {
7
8 if (!global.DicionarioConexoes)
9 global.DicionarioConexoes = [];
10
11
12 contratante.contratantesIds.forEach(function(contratanteId) {
13
14 var conexao = {};
15 var connection = contratante.getDataBaseConnection(contratanteId, 'MONGODB', aplicacao);
16
17 var url = 'mongodb://' + connection.Servidor + "/" + connection.BancoDeDados;
18 var auth = {
19 user: connection.Usuario,
20 pass: connection.Senha
21 };
22 conexao.models = [];
23 conexao.contratanteId = contratanteId;
24 conexao.instancia = mongoose.createConnection(url, { config: { autoIndex: true }, ...auth }, function(error, teste) {
25 if (error) {
26 console.log("Erro ao conectar no MongoDb: " + error);
27 if (callback_error)
28 callback_error();
29 if (process.env.NODE_ENV == 'production')
30 process.exit();
31 } else {
32 console.log("MongoDb conectado.");
33 if (callback_success)
34 callback_success();
35 }
36 });
37
38 global.DicionarioConexoes.push(conexao);
39
40 });
41};
42
43db.staticConnect = function(connectionConfig, name, callback_success, callback_error) {
44
45 if (!global.DicionarioConexoesEstaticas)
46 global.DicionarioConexoesEstaticas = [];
47
48
49 var conexao = {};
50 var url = 'mongodb://' + connectionConfig.host + ":" + connectionConfig.port + "/" + connectionConfig.database;
51 var auth = {
52 user: connectionConfig.user,
53 pass: connectionConfig.pass
54 };
55 conexao.models = [];
56 conexao.name = name;
57 conexao.instancia = mongoose.createConnection(url, { config: { autoIndex: true }, ...auth }, function(error, teste) {
58 if (error) {
59 console.log("Erro ao conectar no MongoDb: " + error);
60 if (callback_error)
61 callback_error();
62 if (process.env.NODE_ENV == 'production')
63 process.exit();
64 } else {
65 console.log("MongoDb conectado.");
66 if (callback_success)
67 callback_success();
68 }
69 });
70
71 global.DicionarioConexoesEstaticas.push(conexao);
72};
73/**
74 * Este método sera retirado favor utilizar o `staticConnect`
75 * @param {string} url
76 */
77db.connectToRobbyson = function(url) {
78 if (!mongoose.connection.readyState) {
79 console.log(url);
80 //it is recommended autoIndex be disabled in production since index creation can cause a significant performance impact.
81 mongoose.connect(url, { config: { autoIndex: true }, useMongoClient: true }, function(error) {
82 if (error) {
83 console.log("Erro ao conectar no MongoDb: " + error);
84 } else {
85 console.log("MongoDb conectado!");
86 }
87 });
88 }
89};
90
91module.exports = db;
\No newline at end of file