1.1.4 • Published 3 months ago
@teamnet/ic-orm v1.1.4
This ORM Works only for iCOne Systems. PLease, use Total.js Version for free.
Node Database Management System (ORM)
- Documentation
- Website
- Documentation
- Chat support
- Join Total.js Telegram
- Support
- supports
PostgreSQL
,MySQL
, Total.jsTextDB
andMongoDB
(with connection pooling)
Initialization
- installation
$ npm i @teamnet/ic-orm
- install MySQL:
$ npm install mysql2
- install PostgreSQL:
$ npm install pg
- install MongoDB:
$ npm install mongodb
- install MySQL:
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');
});