1.1.4 • Published 3 months ago

@teamnet/ic-orm v1.1.4

Weekly downloads
-
License
MIT
Repository
-
Last release
3 months ago

This ORM Works only for iCOne Systems. PLease, use Total.js Version for free.

Node Database Management System (ORM)

Initialization

  • installation $ npm i @teamnet/ic-orm
    • install MySQL: $ npm install mysql2
    • install PostgreSQL: $ npm install pg
    • install MongoDB: $ npm install mongodb
const dbms = require('@teamnet/ic-orm');

dbms.init([alias], connection_string);
// @alias {String} Optional, alias for connection string (default: 'default')
// @connection_string {String} A connection string to DB

// PostgreSQL
dbms.init('postgresql://user:pass@localhost:5432/dbname');
dbms.init('mypg', 'postgresql://user:pass@localhost:5432/dbname?max=10'); // with a name and connection pool

// MySQL & Maria DB
dbms.init('mysql://user:pass@localhost:3306/dbname');
dbms.init('mysql', 'mysql://user:pass@localhost:3306/dbname?max=10'); // with a name and connection pool

// MongoDB
dbms.init('mongodb://user:pass@localhost:27017/dbname');
dbms.init('mongo', 'mongodb://user:pass@localhost:27017/dbname?max=10'); // with a name and connection pool

// MongoDB with ReplicaSet
dbms.init('mongodb://user:pass@server1:27017,server2:27017,server3:27017/dbname?replicaSet=rs0&readPreference=secondaryPreferred&max=30');

// Total.js NoSQL embedded
dbms.init('nosql');
dbms.init('mynosql', 'nosql'); // with a name for more DB engines

// Total.js Table
dbms.init('table');
dbms.init('mytable', 'nosql'); // with a name for more DB engines

Usage

// Is a global method
var db = DBMS();

// Finds records
// A response: Array
// returns QueryBuilder
db.find('collection_table_name');
db.find('mypg/collection_table_name');
db.find('mynosql/collection_table_name');
db.find('mytable/collection_table_name');

// Finds the one record
// A response: Object
// returns QueryBuilder
db.one('collection_table_name');
db.one('mypg/collection_table_name');
db.one('mynosql/collection_table_name');
db.one('mytable/collection_table_name');

// Inserts a new record
// A response: Number
// returns QueryBuilder
db.insert('collection_table_name', document, [unique]);
db.insert('mypg/collection_table_name', document, [unique]);
db.insert('mynosql/collection_table_name', document, [unique]);
db.insert('mytable/collection_table_name', document, [unique]);

Connection Pooling

ICORM soporta connection pooling para PostgreSQL, MySQL y MongoDB. Los parámetros de configuración se pasan a través de la cadena de conexión.

PostgreSQL Connection Pool

// Formato: postgresql://user:pass@host:port/dbname?max=10&min=2&timeout=1000
// - max: número máximo de conexiones en el pool (por defecto: 4)
// - min: número mínimo de conexiones en el pool (por defecto: 2)
// - timeout: tiempo de inactividad en milisegundos (por defecto: 1000)
// - ssl: habilitar SSL (true/false)

dbms.init('postgresql://user:pass@localhost:5432/dbname?max=10&min=2&timeout=1000');

MySQL Connection Pool

// Formato: mysql://user:pass@host:port/dbname?max=10
// - max: límite de conexiones (connectionLimit) (por defecto: 4)
// - ssl: habilitar SSL (true/false)

dbms.init('mysql://user:pass@localhost:3306/dbname?max=10');

MongoDB Connection Pool

// Formato: mongodb://user:pass@host:port/dbname?max=10
// - max o maxPoolSize: número máximo de conexiones en el pool (por defecto: 10)
// - Soporta todas las opciones estándar de MongoDB como replicaSet, readPreference, etc.

dbms.init('mongodb://user:pass@localhost:27017/dbname?max=10');

// Ejemplo con ReplicaSet
dbms.init('mongodb://user:pass@server1:27017,server2:27017,server3:27017/dbname?replicaSet=rs0&readPreference=secondaryPreferred&max=30');

Cierre de conexiones

En el caso de MongoDB, puedes cerrar explícitamente la conexión utilizando:

const mongo = require('./mongo');

// Cerrar la conexión explícitamente
await mongo.disconnect();

// O con callback
mongo.disconnect(function() {
  console.log('Conexión cerrada');
});

Contact

1.1.1

3 months ago

1.1.0

3 months ago

1.1.4

3 months ago

1.1.3

3 months ago

1.1.2

3 months ago

1.0.53

11 months ago

1.0.52

11 months ago