Alinex Database Abstraction

1.1.2 · active · verified Wed Apr 22

Alinex Database is a Node.js module that provides a comprehensive database abstraction layer, designed to simplify interactions with various relational database management systems (RDBMS) such as MySQL and PostgreSQL. Currently at version 1.1.2, this library offers key features including robust connection pooling, support for database clustering, automatic SSH tunneling for secure connections, and an object-to-query language builder. It aims for ease of configuration and use across different database types, integrating closely with the broader Alinex Namespace ecosystem for configuration management. While a specific release cadence isn't detailed, the project appears actively maintained, offering a stable API for its stated features. Its primary differentiators lie in its bundled advanced connection management capabilities and integrated query building, aiming to reduce boilerplate for common database operations.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates the core workflow: obtaining a database instance, connecting to it from the pool, executing a simple SQL query, and ensuring proper connection release and database instance closure using callback functions.

const database = require('alinex-database');

// This example assumes a 'test-mysql' configuration is set up
// in your alinex-config. For example, in a config file:
// database:
//   test-mysql:
//     type: 'mysql'
//     host: 'localhost'
//     user: 'root'
//     password: 'password'
//     database: 'test_db'

database.instance('test-mysql', (err, db) => {
  if (err) {
    console.error('Error getting database instance:', err);
    return;
  }
  console.log('Database instance for "test-mysql" obtained.');

  db.connect((err, conn) => {
    if (err) {
      console.error('Error connecting to database:', err);
      return;
    }
    console.log('Connected to database. Executing query...');

    conn.query('SELECT 2 + 2 AS solution', (err, rows, fields) => {
      if (err) {
        console.error('Error executing query:', err);
        conn.release(); // Release connection even on query error
        return;
      }

      console.log('Query result: The database calculated 2+2 =', rows[0].solution);
      conn.release(); // Release connection back to the pool
      console.log('Connection released.');

      db.close((err) => {
        if (err) {
          console.error('Error closing database:', err);
          return;
        }
        console.log('Database instance closed successfully.');
      });
    });
  });
});

view raw JSON →