minervajs-helmet 1.0.2 → 1.0.4

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/README.md CHANGED
@@ -1,2 +1,30 @@
1
1
  # MinervaJS.Helmet
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
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
+
4
+ Ejemplo: Partiendo de un proyecto en blanco recien creado
5
+ > npm i minervajs-helmet
6
+
7
+ Archivo: index.js
8
+
9
+ var db = require('minervajs-helmet');
10
+
11
+ var l_sql = " SELECT P.id, " +
12
+            " P.titulo, " +
13
+            " P.subtitulo, " +
14
+            " DATE_FORMAT(P.publicado, '%M %d, %Y') as publicado, " +
15
+            " P.autor, " +
16
+            " P.introduccion, " +
17
+            " P.tags, " +
18
+            " P.url_imagen " +
19
+      " FROM publicacion P " +
20
+      " ORDER BY P.publicado DESC " +
21
+      " LIMIT 10 ";
22
+
23
+ db.executeSQL(l_sql, function(a_data, err)
24
+ {
25
+       if (err)
26
+       {console.log(err);}
27
+       else
28
+       {console.log(a_data);}
29
+ });
30
+
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @module
3
+ * @name settings
4
+ * @description Modulo gestor de la coneccion a la base de datos
5
+ * Configuracion de la Base de Datos
6
+ *
7
+ * Se incluye un ejemplo de uso, segun el tipo de base de datos
8
+ */
9
+ exports.httpMsgFormat = 'HTML';
10
+ exports.Title = "MinervaJS - Helmet";
11
+ exports.Rights_Reserved = "2023-2025 © A&C Consultoría Informática";
12
+
13
+ module.exports = {
14
+ /*
15
+ * 'mi_postgres':
16
+ * {
17
+ * type: 'postgres',
18
+ * host: 'localhost',
19
+ * port: 5432,
20
+ * user: 'usuario',
21
+ * password: 'contraseña',
22
+ * database: 'nombre_db'
23
+ * },
24
+ */
25
+ 'my_mysql':
26
+ {
27
+ type: 'mysql',
28
+ host: 'sql3.freesqldatabase.com' // 'localhost',
29
+ port: 3306, //
30
+ user: 'sql3772729' // 'usuario',
31
+ password: 'esUA3qpGKD' // 'contraseña',
32
+ database: 'sql3772729' // 'nombre_db'
33
+ },
34
+ 'my_oracle': {
35
+ type: 'oracle',
36
+ host: 'localhost o IP'
37
+ port: 5432,
38
+ user: 'usuario',
39
+ password: 'contraseña',
40
+ database: 'nombre_db',
41
+ connectString : '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=namehostoip)(PORT=port))(CONNECT_DATA=(SERVICE_NAME=servicename)))'
42
+ },
43
+
44
+ };
@@ -12,7 +12,7 @@ var settings = require('../settings');
12
12
  * @function
13
13
  * @name executeSQL
14
14
  * @param {string} sql - Sentencia SQL a ejecutar
15
- * @param {callback} callback - objeto, para retornar la promesa
15
+ * @param {Promise<callback>} callback - objeto, para retornar la promesa
16
16
  * @returns {result} result/err - Devuelve un objeto con el set de datos o un objeto err con la respuesta del error
17
17
  * @description Ejecuta una sentencia SQL y devuelve un objeto en un set de datos
18
18
  */
@@ -46,7 +46,7 @@ exports.executeSQL = function (sql, callback)
46
46
  * @function
47
47
  * @name executeSQLarray
48
48
  * @param {string} sql - Sentencia SQL a ejecutar
49
- * @param {callback} callback - objeto, para retornar la promesa
49
+ * @param {Promise<callback>} callback - objeto, para retornar la promesa
50
50
  * @returns {result} result/err - Devuelve un objeto con el set de datos o un objeto err con la respuesta del error
51
51
  * @description Ejecuta una sentencia SQL, basado en una serie de argumentos y devuelve un objeto en un set de datos
52
52
  */
package/js/db_mysql.js CHANGED
@@ -1,4 +1,10 @@
1
- var mysql = require('mysql');
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('mysql2');
2
8
  var settings = require('../js/settings');
3
9
 
4
10
  exports.executeSQL = function (sql, callback)
@@ -0,0 +1,21 @@
1
+ const { Client } = require('pg');
2
+
3
+ async function connect(config)
4
+ {
5
+ const client = new Client(config);
6
+ await client.connect();
7
+ return client;
8
+ }
9
+
10
+ async function query(client, sql)
11
+ {
12
+ const result = await client.query(sql);
13
+ return result.rows;
14
+ }
15
+
16
+ async function close(client)
17
+ {
18
+ await client.end();
19
+ }
20
+
21
+ module.exports = { connect, query, close };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "minervajs-helmet",
3
- "version": "1.0.2",
4
- "main": "src/index.js",
3
+ "version": "1.0.4",
4
+ "main": "src/db.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
7
7
  },
@@ -16,16 +16,15 @@
16
16
  "license": "ISC",
17
17
  "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
18
  "dependencies": {
19
- "mysql": "^2.18.1",
19
+ "mysql2": "^3.14.0",
20
20
  "oracledb": "^6.6.0"
21
21
  },
22
- "devDependencies": {},
23
22
  "repository": {
24
- "type": "git",
25
- "url": "https://github.com/Alexander-Escobar/MinervaJS.Helmet.git"
23
+ "type": "git",
24
+ "url": "https://github.com/Alexander-Escobar/MinervaJS.Helmet.git"
26
25
  },
27
26
  "bug": {
28
- "url": "https://github.com/Alexander-Escobar/MinervaJS.Helmet.git/issues"
27
+ "url": "https://github.com/Alexander-Escobar/MinervaJS.Helmet.git/issues"
29
28
  },
30
29
  "homepage": "https://github.com/Alexander-Escobar/MinervaJS.Helmet.git#readme"
31
30
  }
package/src/db.js ADDED
@@ -0,0 +1,123 @@
1
+ /**
2
+ *
3
+ * @name MinervaJS-Helmet
4
+ * @description Modulo gestor de la coneccion a la base de datos
5
+ *
6
+ */
7
+ const postgres = require('./js/db_postgres');
8
+ const mysql = require('./js/db_mysql');
9
+ const oracle = require('./js/db_oracle');
10
+ const config = require('./config/settings');
11
+
12
+ const connections = {};
13
+
14
+
15
+ /**
16
+ * @function
17
+ * @name connect
18
+ * @param {string} databaseName - Perfil de la base de datos
19
+ * @returns {result} result/err - Devuelve un objeto con del tipo conexión
20
+ * @description Toma la configuracion y realiza la coneccion a la base de datos
21
+ */
22
+ async function connect(databaseName)
23
+ {
24
+ const dbConfig = config[databaseName];
25
+ if (!dbConfig) {
26
+ throw new Error(`Configuración de base de datos '${databaseName}' no encontrada.`);
27
+ }
28
+
29
+ if (connections[databaseName])
30
+ {
31
+ return connections[databaseName]; // Ya existe una conexión
32
+ }
33
+
34
+ switch (dbConfig.type)
35
+ {
36
+ case 'postgres':
37
+ connections[databaseName] = await postgres.connect(dbConfig);
38
+ break;
39
+ case 'mysql':
40
+ connections[databaseName] = await mysql.connect(dbConfig);
41
+ break;
42
+ case 'oracle':
43
+ connections[databaseName] = await oracle.connect(dbConfig);
44
+ break;
45
+ default:
46
+ throw new Error(`Tipo de base de datos '${dbConfig.type}' no soportado.`);
47
+ }
48
+
49
+ return connections[databaseName];
50
+ }
51
+
52
+ /**
53
+ * @function
54
+ * @name query
55
+ * @param {string} databaseName - Perfil de la base de datos
56
+ * @param {string} sql - Sentencia SQL a ejecutar
57
+ * @returns {result} result/err - Devuelve un objeto con el set de datos o un objeto err con la respuesta del error
58
+ * @description Ejecuta una sentencia SQL y devuelve un objeto en un set de datos
59
+ */
60
+ async function query(databaseName, sql)
61
+ {
62
+ const connection = await connect(databaseName);
63
+ const dbConfig = config[databaseName];
64
+
65
+ switch (dbConfig.type)
66
+ {
67
+ case 'postgres':
68
+ return postgres.query(connection, sql);
69
+ case 'mysql':
70
+ return mysql.query(connection, sql);
71
+ case 'oracle':
72
+ return oracle.query(connection, sql);
73
+ default:
74
+ throw new Error(`Tipo de base de datos '${dbConfig.type}' no soportado para la operación 'query'.`);
75
+ }
76
+ }
77
+
78
+ /**
79
+ * @function
80
+ * @name close
81
+ * @param {string} databaseName - Perfil de la base de datos
82
+ * @returns NONE
83
+ * @description Cierra la conexion del Perfil de la base de datos pasado como parametro.
84
+ */
85
+ async function close(databaseName)
86
+ {
87
+ if (connections[databaseName])
88
+ {
89
+ const dbConfig = config[databaseName];
90
+ switch (dbConfig.type) {
91
+ case 'postgres':
92
+ await postgres.close(connections[databaseName]);
93
+ break;
94
+ case 'mysql':
95
+ await mysql.close(connections[databaseName]);
96
+ break;
97
+ case 'oracle':
98
+ await oracle.close(connections[databaseName]);
99
+ break;
100
+ }
101
+ delete connections[databaseName];
102
+ }
103
+ }
104
+
105
+
106
+
107
+ /**
108
+ * @function
109
+ * @name executeSQL
110
+ * @param {string} sql - Sentencia SQL a ejecutar
111
+ * @param {Promise<callback>} callback - objeto, para retornar la promesa
112
+ * @returns {result} result/err - Devuelve un objeto con el set de datos o un objeto err con la respuesta del error
113
+ * @description Ejecuta una sentencia SQL y devuelve un objeto en un set de datos
114
+ */
115
+
116
+
117
+ module.exports =
118
+ {
119
+ connect,
120
+ query,
121
+ close,
122
+ // ... otras funciones comunes
123
+ };
package/settings.js DELETED
@@ -1,32 +0,0 @@
1
- /*
2
- Configuracion y Parametrizacion general de la Aplicacion & Sitio Web
3
-
4
- Listado:
5
- dbConfig Configuracion de la Base de Datos
6
- servConfig Configuracion del Servidor
7
- httpConfig Configuracion de las Peticiones URL del Protocolo HTTP
8
- Google Configuracion para Google Ads
9
- Image Configuracion General para las imagenes
10
- pagConfig Configuracion de la Paginacion de los Mantenimientos
11
- */
12
-
13
- exports.httpMsgFormat = 'HTML';
14
- exports.Title = "DB Smarts Docs";
15
- exports.Rights_Reserved = "2023 &copy; A&C Consultoría Informática";
16
-
17
- exports.dbConfig =
18
- {
19
- // mysql
20
- // host: "localhost",
21
- user: "Owlet",
22
- password: "Password01",
23
- // database: "DBSisConta"
24
- connectString : "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=namehostoip)(PORT=port))(CONNECT_DATA=(SERVICE_NAME=servicename)))"
25
- };
26
-
27
- exports.servConfig =
28
- {
29
- hostname: "", // http://localhost:9000
30
- webPort: 9000, // 80
31
- debug: true
32
- };
package/src/index.js DELETED
@@ -1,7 +0,0 @@
1
- /**
2
- *
3
- * @name MinervaJS-Helmet
4
- * @description Modulo gestor de la coneccion a la base de datos
5
- *
6
- */
7
-