giganet_conecta
Version:
Aplicação com o fim de facilitar conexões com APi's e Banco de Dados (MySql, Mongo e Elasticsearch).
44 lines (37 loc) • 1.2 kB
JavaScript
const { createConnection } = require("mongoose");
module.exports = async function ({
user,
pass,
host,
port,
db,
authSource = null,
}) {
try {
if (!user || !pass || !host || !port || !db)
throw new Error(
`Erro ao conectar com o banco de dados (Mongo) ${db}: Dados de conexão 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;
}
};