UNPKG

giganet_conecta

Version:

Aplicação com o fim de facilitar conexões com APi's e Banco de Dados (MySql, Mongo e Elasticsearch).

51 lines (43 loc) 1.38 kB
const { createConnection } = require("mongoose"); module.exports = async function ({ user, pass, host, port, db, authSource = null, }) { try { if (!host || !port || !db) { throw new Error( `Erro ao conectar com o banco de dados (Mongo) ${db}: Dados de conexão não informados` ); } if (host !== "localhost" && (!user || !pass)) { throw new Error( `Erro ao conectar com o banco de dados (Mongo) ${db}: Usuário ou senha não informados` ); } const encodedUser = encodeURIComponent(user); const encodedPass = encodeURIComponent(pass); const connection_mongo = createConnection( host === "localhost" ? `mongodb://localhost:27017/${db}` : `mongodb://${encodedUser}:${encodedPass}@${host}:${port}/${db}${ authSource ? `?authSource=${authSource}` : "" }` ); connection_mongo.set("useCreateIndex", true); connection_mongo.on("error", (error) => { throw new Error(error instanceof Error ? error.message : error); }); return connection_mongo; } catch (error) { console.error( `Erro ao conectar com o banco de dados (Mongo) ${db}: ${ error instanceof Error ? error.message : error }` ); throw error instanceof Error ? error.message : error; } };