minervajs-helmet 1.0.10 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +10 -10
- package/js/db_mysql.js +20 -10
- package/package.json +5 -3
- package/src/db.js +54 -31
- package/js/OLD db.js +0 -76
- /package/{config → example}/settings.js +0 -0
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
BSD 2-Clause License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2024, Alexander
|
|
3
|
+
Copyright (c) 2024, 2025, Alexander Enrique Escobar O.
|
|
4
4
|
|
|
5
5
|
Redistribution and use in source and binary forms, with or without
|
|
6
6
|
modification, are permitted provided that the following conditions are met:
|
package/README.md
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
# MinervaJS
|
|
1
|
+
# MinervaJS.Helmet
|
|
2
2
|
Modulo para la gestion de las conección a la base de datos, permite conectarse a varios tipos utilizando sobrecarga de metodos, tolera MySQL y Oracle Client
|
|
3
3
|
|
|
4
|
-
Ejemplo: Partiendo de un proyecto en blanco recien creado
|
|
4
|
+
Ejemplo: Partiendo de un proyecto NodeJS en blanco recien creado
|
|
5
5
|
`$ npm i minervajs-helmet `
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
#### Archivo: ./config/settings.js
|
|
8
8
|
Adicionas una Entrada, por cada tipo y base de datos
|
|
9
9
|
```javascript
|
|
10
10
|
{
|
|
11
|
-
'my_mysql':
|
|
11
|
+
'my_mysql': // 'Perfil de Conexión'
|
|
12
12
|
{
|
|
13
13
|
type: 'mysql',
|
|
14
14
|
host: 'sql3.freesqldatabase.com', // 'localhost',
|
|
15
|
-
port: 3306,
|
|
16
|
-
user: 'sql3772729',
|
|
15
|
+
port: 3306, // 'puerto',
|
|
16
|
+
user: 'sql3772729', // 'usuario',
|
|
17
17
|
password: 'esUA3qpGKD', // 'contraseña',
|
|
18
|
-
database: 'sql3772729'
|
|
18
|
+
database: 'sql3772729' // 'nombre_db'
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
#### Archivo: index.js
|
|
24
24
|
|
|
25
25
|
```javascript
|
|
26
26
|
var db = require('minervajs-helmet');
|
|
@@ -30,7 +30,7 @@ async function main() {
|
|
|
30
30
|
try {
|
|
31
31
|
// Conexión a MySQL
|
|
32
32
|
const mysqlConnection = await db.connect('my_mysql', config);
|
|
33
|
-
const mysqlResult = await db.query('my_mysql', ' SELECT * FROM test ;', [], config); // Ejemplo
|
|
33
|
+
const mysqlResult = await db.query('my_mysql', ' SELECT * FROM test ;', [], config); // Ejemplo sin parámetros
|
|
34
34
|
console.log('Resultados de MySQL:', mysqlResult);
|
|
35
35
|
await db.close('my_mysql', config);
|
|
36
36
|
} catch (error) {
|
|
@@ -41,7 +41,7 @@ async function main() {
|
|
|
41
41
|
main();
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
#### Salida de resultados
|
|
45
45
|
```javascript
|
|
46
46
|
Resultados de MySQL: [
|
|
47
47
|
{
|
package/js/db_mysql.js
CHANGED
|
@@ -19,8 +19,10 @@ const mysql = require('mysql2/promise'); // Usamos mysql2/promise para async/awa
|
|
|
19
19
|
* @param {object} config - Configuración de la conexión.
|
|
20
20
|
* @returns {Promise<mysql.Connection>} Objeto de conexión de MySQL.
|
|
21
21
|
*/
|
|
22
|
-
async function connect(config)
|
|
23
|
-
|
|
22
|
+
async function connect(config)
|
|
23
|
+
{
|
|
24
|
+
try
|
|
25
|
+
{
|
|
24
26
|
const connection = await mysql.createConnection({
|
|
25
27
|
host: config.host,
|
|
26
28
|
port: config.port,
|
|
@@ -29,7 +31,9 @@ async function connect(config) {
|
|
|
29
31
|
database: config.database,
|
|
30
32
|
});
|
|
31
33
|
return connection;
|
|
32
|
-
}
|
|
34
|
+
}
|
|
35
|
+
catch (error)
|
|
36
|
+
{
|
|
33
37
|
console.error('Error al conectar a MySQL:', error);
|
|
34
38
|
throw error; // Re-lanzamos el error para que sea manejado por el llamador
|
|
35
39
|
}
|
|
@@ -45,11 +49,15 @@ async function connect(config) {
|
|
|
45
49
|
* @param {Array} [values] - Parámetros para la consulta.
|
|
46
50
|
* @returns {Promise<Array>} Filas resultantes de la consulta.
|
|
47
51
|
*/
|
|
48
|
-
async function query(connection, sql, values = [])
|
|
49
|
-
|
|
52
|
+
async function query(connection, sql, values = [])
|
|
53
|
+
{
|
|
54
|
+
try
|
|
55
|
+
{
|
|
50
56
|
const [rows, fields] = await connection.execute(sql, values);
|
|
51
57
|
return rows;
|
|
52
|
-
}
|
|
58
|
+
}
|
|
59
|
+
catch (error)
|
|
60
|
+
{
|
|
53
61
|
console.error('Error al ejecutar la consulta MySQL:', error);
|
|
54
62
|
throw error;
|
|
55
63
|
}
|
|
@@ -63,10 +71,12 @@ async function query(connection, sql, values = []) {
|
|
|
63
71
|
* @param {mysql.Connection} connection - Objeto de conexión de MySQL.
|
|
64
72
|
* @returns {Promise<void>}
|
|
65
73
|
*/
|
|
66
|
-
async function close(connection)
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
74
|
+
async function close(connection)
|
|
75
|
+
{
|
|
76
|
+
try
|
|
77
|
+
{ await connection.end(); }
|
|
78
|
+
catch (error)
|
|
79
|
+
{
|
|
70
80
|
console.error('Error al cerrar la conexión MySQL:', error);
|
|
71
81
|
throw error;
|
|
72
82
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "minervajs-helmet",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"main": "src/db.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
@@ -10,10 +10,12 @@
|
|
|
10
10
|
"Multi DataBase",
|
|
11
11
|
"connect",
|
|
12
12
|
"MySQL",
|
|
13
|
-
"Oracle Client"
|
|
13
|
+
"Oracle Client",
|
|
14
|
+
"PostGres",
|
|
15
|
+
"MinervaJS"
|
|
14
16
|
],
|
|
15
17
|
"author": "alexander.enrique.escobar@gmail.com",
|
|
16
|
-
"license": "
|
|
18
|
+
"license": "BSD-2-Clause",
|
|
17
19
|
"description": "Modulo para la gestion de coneccion a la base de datos, de diferentes tipos mediante el uso de sobre Carga y Herencia de clases",
|
|
18
20
|
"dependencies": {
|
|
19
21
|
"mysql2": "^3.14.0",
|
package/src/db.js
CHANGED
|
@@ -27,39 +27,37 @@ const connections = {};
|
|
|
27
27
|
*/
|
|
28
28
|
async function connect(databaseName, config)
|
|
29
29
|
{
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (!dbConfig) {
|
|
33
|
-
throw new Error(`Configuración de base de datos '${databaseName}' no encontrada.`);
|
|
34
|
-
}
|
|
30
|
+
const dbConfig = config[databaseName];
|
|
35
31
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return connections[databaseName]; // Ya existe una conexión
|
|
39
|
-
}
|
|
32
|
+
if (!dbConfig)
|
|
33
|
+
{ throw new Error(`Configuración de base de datos '${databaseName}' no encontrada.`); }
|
|
40
34
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
35
|
+
// Ya existe una conexión
|
|
36
|
+
if (connections[databaseName])
|
|
37
|
+
{ return connections[databaseName]; }
|
|
38
|
+
|
|
39
|
+
switch (dbConfig.type)
|
|
40
|
+
{
|
|
41
|
+
case 'postgres':
|
|
42
|
+
connections[databaseName] = await postgres.connect(dbConfig);
|
|
43
|
+
break;
|
|
44
|
+
case 'mysql':
|
|
45
|
+
connections[databaseName] = await mysql.connect(dbConfig);
|
|
46
|
+
break;
|
|
47
|
+
// case 'mariadb':
|
|
48
|
+
// connections[databaseName] = await mariadb.connect(dbConfig);
|
|
49
|
+
// break;
|
|
50
|
+
case 'oracle':
|
|
51
|
+
connections[databaseName] = await oracle.connect(dbConfig);
|
|
52
|
+
break;
|
|
53
|
+
// case 'mongodb':
|
|
54
|
+
// connections[databaseName] = await mongodb.connect(dbConfig);
|
|
55
|
+
// break;
|
|
56
|
+
default:
|
|
57
|
+
throw new Error(`Tipo de base de datos '${dbConfig.type}' no soportado.`);
|
|
58
|
+
}
|
|
61
59
|
|
|
62
|
-
|
|
60
|
+
return connections[databaseName];
|
|
63
61
|
}
|
|
64
62
|
|
|
65
63
|
/**
|
|
@@ -140,12 +138,36 @@ async function close(databaseName, config)
|
|
|
140
138
|
|
|
141
139
|
/**
|
|
142
140
|
* @function
|
|
143
|
-
* @name
|
|
141
|
+
* @name execute
|
|
144
142
|
* @param {string} sql - Sentencia SQL a ejecutar
|
|
145
143
|
* @param {Promise<callback>} callback - objeto, para retornar la promesa
|
|
146
144
|
* @returns {result} result/err - Devuelve un objeto con el set de datos o un objeto err con la respuesta del error
|
|
147
145
|
* @description Ejecuta una sentencia SQL y devuelve un objeto en un set de datos
|
|
148
146
|
*/
|
|
147
|
+
async function execute(databaseName, sql, values = [], config)
|
|
148
|
+
{
|
|
149
|
+
const connection = await connect(databaseName, config);
|
|
150
|
+
const dbConfig = config[databaseName];
|
|
151
|
+
|
|
152
|
+
switch (dbConfig.type)
|
|
153
|
+
{
|
|
154
|
+
case 'postgres':
|
|
155
|
+
return postgres.query(connection, sql);
|
|
156
|
+
case 'mysql':
|
|
157
|
+
return mysql.query(connection, sql, values);
|
|
158
|
+
// case 'mariadb': // agregamos el caso MariaDB
|
|
159
|
+
// return mariadb.query(connection, sql, binds);
|
|
160
|
+
// break;
|
|
161
|
+
case 'oracle':
|
|
162
|
+
return oracle.query(connection, sql);
|
|
163
|
+
// case 'mongodb':
|
|
164
|
+
// // Adaptar la consulta SQL a la sintaxis de MongoDB
|
|
165
|
+
// console.warn("La función 'query' no es directamente aplicable a MongoDB con sintaxis SQL.");
|
|
166
|
+
// return null; // O lanzar un error
|
|
167
|
+
default:
|
|
168
|
+
throw new Error(`Tipo de base de datos '${dbConfig.type}' no soportado para la operación 'query'.`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
149
171
|
|
|
150
172
|
|
|
151
173
|
|
|
@@ -153,6 +175,7 @@ module.exports =
|
|
|
153
175
|
{
|
|
154
176
|
connect,
|
|
155
177
|
query,
|
|
178
|
+
execute,
|
|
156
179
|
close,
|
|
157
180
|
// ... otras funciones comunes
|
|
158
181
|
};
|
package/js/OLD db.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module
|
|
3
|
-
* @name db_mysql
|
|
4
|
-
* @description Modulo gestor de la coneccion a la base de datos, MySQL, utiliza el cliente mysql2
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
var mysql = require('mysql');
|
|
8
|
-
var settings = require('../settings');
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @function
|
|
12
|
-
* @name executeSQL
|
|
13
|
-
* @param {string} sql - Sentencia SQL a ejecutar
|
|
14
|
-
* @param {Promise<callback>} callback - objeto, para retornar la promesa
|
|
15
|
-
* @returns {result} result/err - Devuelve un objeto con el set de datos o un objeto err con la respuesta del error
|
|
16
|
-
* @description Ejecuta una sentencia SQL y devuelve un objeto en un set de datos
|
|
17
|
-
*/
|
|
18
|
-
exports.executeSQL = function (sql, callback)
|
|
19
|
-
{
|
|
20
|
-
var con = new mysql.createConnection(settings.dbConfig);
|
|
21
|
-
|
|
22
|
-
con.connect(function(err)
|
|
23
|
-
{
|
|
24
|
-
if (err)
|
|
25
|
-
{
|
|
26
|
-
callback(null, err);
|
|
27
|
-
//throw err;
|
|
28
|
-
}
|
|
29
|
-
if (settings.servConfig.debug){console.log("Connected!");}
|
|
30
|
-
con.query(sql, function (err, result) {
|
|
31
|
-
if (err)
|
|
32
|
-
{
|
|
33
|
-
callback(null, err);
|
|
34
|
-
//throw err;
|
|
35
|
-
}
|
|
36
|
-
if (settings.servConfig.debug){console.log("Sentencia Ejecutada:"+sql);}
|
|
37
|
-
callback(result);
|
|
38
|
-
|
|
39
|
-
con.end();
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* @function
|
|
46
|
-
* @name executeSQLarray
|
|
47
|
-
* @param {string} sql - Sentencia SQL a ejecutar
|
|
48
|
-
* @param {Promise<callback>} callback - objeto, para retornar la promesa
|
|
49
|
-
* @returns {result} result/err - Devuelve un objeto con el set de datos o un objeto err con la respuesta del error
|
|
50
|
-
* @description Ejecuta una sentencia SQL, basado en una serie de argumentos y devuelve un objeto en un set de datos
|
|
51
|
-
*/
|
|
52
|
-
exports.executeSQLarray = function (sql, array, callback)
|
|
53
|
-
{
|
|
54
|
-
var con = new mysql.createConnection(settings.dbConfig);
|
|
55
|
-
|
|
56
|
-
con.connect(function(err)
|
|
57
|
-
{
|
|
58
|
-
if (err)
|
|
59
|
-
{
|
|
60
|
-
callback(null, err);
|
|
61
|
-
//throw err;
|
|
62
|
-
}
|
|
63
|
-
if (settings.servConfig.debug){console.log("Connected!");}
|
|
64
|
-
con.query(sql, array, function (err, result) {
|
|
65
|
-
if (err)
|
|
66
|
-
{
|
|
67
|
-
callback(null, err);
|
|
68
|
-
//throw err;
|
|
69
|
-
}
|
|
70
|
-
if (settings.servConfig.debug){console.log("Sentencia Ejecutada:"+sql);}
|
|
71
|
-
callback(result);
|
|
72
|
-
|
|
73
|
-
con.end();
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
}
|
|
File without changes
|