dbm-sdk
v1.1.0
Published
Connect and manage your database
Readme
Database Manager
A flexible Node.js database manager that supports MySQL, PostgreSQL, and SQLite databases with a unified API.
Features
- Unified interface for multiple databases (MySQL, PostgreSQL, SQLite)
- Connection pooling
- Promise-based API
- CRUD operations support
- Dynamic query building
- Connection management
Installation
npm install dbm-sdkAlso install the database driver(s) you plan to use:
# For MySQL
npm install mysql2
# For PostgreSQL
npm install pg
# For SQLite
npm install sqlite3Usage
Basic Connection
const DatabaseManager = require('dbm-sdk');
// MySQL configuration
const mysqlConfig = {
type: 'mysql',
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
};
// PostgreSQL configuration
const pgConfig = {
type: 'postgres',
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database',
port: 5432
};
// SQLite configuration
const sqliteConfig = {
type: 'sqlite',
filename: './mydb.sqlite'
};
async function example() {
// Create instance
const db = new DatabaseManager(mysqlConfig);
// Connect to database
await db.connect();
// Don't forget to close when done
await db.close();
}CRUD Operations
async function crudExample() {
const db = new DatabaseManager(mysqlConfig);
await db.connect();
try {
// Create table
await db.createTable();
// Insert data
await db.insert('users', {
name: 'John Doe',
email: '[email protected]'
});
// Select data
const users = await db.select('users', ['name', 'email'], 'name = ?', ['John Doe']);
console.log(users);
// Update data
await db.update('users',
{ name: 'John Smith' },
'email = ?',
['[email protected]']
);
// Delete data
await db.delete('users', 'name = ?', ['John Smith']);
} finally {
await db.close();
}
}Express.js Integration Example
const express = require('express');
const DatabaseManager = require('dbm-sdk');
const app = express();
app.use(express.json());
const dbConfig = {
type: 'mysql',
host: 'localhost',
user: 'root',
password: 'password',
database: 'testdb'
};
app.post('/users', async (req, res) => {
const db = new DatabaseManager(dbConfig);
try {
await db.connect();
const result = await db.insert('users', req.body);
res.json(result);
} catch (error) {
res.status(500).json({ error: error.message });
} finally {
await db.close();
}
});API Reference
Constructor
new DatabaseManager(config): Creates a new database manager instance
Methods
connect(): Establishes database connectionclose(): Closes database connectionquery(sql, params): Executes raw SQL querycreateTable(): Creates default users tableinsert(table, data): Inserts data into tableupdate(table, data, where, whereParams): Updates recordsdelete(table, where, whereParams): Deletes recordsselect(table, columns, where, whereParams): Selects records
Configuration Options
MySQL
{
type: 'mysql',
host: 'localhost',
user: 'username',
password: 'password',
database: 'dbname',
port: 3306 // optional
}PostgreSQL
{
type: 'postgres',
host: 'localhost',
user: 'username',
password: 'password',
database: 'dbname',
port: 5432 // optional
}SQLite
{
type: 'sqlite',
filename: './database.sqlite'
}License
MIT
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Support
For support, please open an issue in the GitHub repository.
