Registry / database / node-mysql-query-utils

node-mysql-query-utils

JSON →
library1.0.8jsnpmunverified

A MySQL query builder and database helper for Node.js, providing DatabaseManagement for connection pooling, SQLBuilder for constructing SELECT/INSERT/UPDATE/DELETE queries, and TableModel for CRUD operations. Version 1.0.8 is stable with TypeScript types included. Unlike raw mysql2, it offers higher-level abstractions like soft delete, central fields management, and multi-database support. Active development is infrequent; last release 2023.

npm install node-mysql-query-utils
INSTALL
IMPORT
SIG · NODE-MYSQL-QUERY-U
N
node-mysql-query-utils
databasejavascriptv1.0.8
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

DatabaseManagement
import { DatabaseManagement } from 'node-mysql-query-utils'
const DatabaseManagement = require('node-mysql-query-utils').DatabaseManagement
ESM-only, no default export. Named import required for all classes.
SQLBuilder
import { SQLBuilder } from 'node-mysql-query-utils'
import SQLBuilder from 'node-mysql-query-utils'
Not a default export; must use named import.
TableModel
import { TableModel } from 'node-mysql-query-utils'
import { tableModel } from 'node-mysql-query-utils'
Case-sensitive 'TableModel' with capital T.
sqlHelper
import { sqlHelper } from 'node-mysql-query-utils'
import { SqlHelper } from 'node-mysql-query-utils'
Lowercase 'sqlHelper' object with helper methods like createColumns.

Shows connecting to MySQL using DatabaseManagement, creating a TableModel for CRUD, and manually building a SELECT query with SQLBuilder.

import { DatabaseManagement, TableModel, SQLBuilder, sqlHelper } from 'node-mysql-query-utils'; DatabaseManagement.connectSingleDatabase('mainDB', { host: process.env.DB_HOST ?? 'localhost', user: process.env.DB_USER ?? 'root', password: process.env.DB_PASS ?? '', database: process.env.DB_NAME ?? 'test' }, { verbose: false }); const mainDB = DatabaseManagement.getInstance('mainDB'); const columns = sqlHelper.createColumns(['id', 'name', 'email']); const userModel = mainDB.createTableModel({ tableName: 'users', primaryKey: 'id', columns }); // Insert a record userModel.insertRecord({ name: 'Alice', email: 'alice@example.com' }).then(console.log).catch(console.error); // Build a query manually const query = new SQLBuilder().select('*').from('users').where({ id: 1 }).buildQuery(); console.log(query);
Debug
Known issues
breakingDatabaseManagement.connectSingleDatabase() changed signature: second parameter is now a config object instead of multiple strings.
fix
Update to version 1.0.0 or later and pass config object as { host, user, password, database }.
affects: <1.0.0
deprecatedDatabaseManagement.connectMultipleDatabases() is deprecated in favor of connectSingleDatabase() for each database.
fix
Call connectSingleDatabase() multiple times with different identifiers.
affects: >=1.0.0
gotchaDatabaseManagement must be initialized before creating TableModel instances; getInstance() will throw if connection not set up.
fix
Always call connectSingleDatabase() or connectMultipleDatabases() at app startup before any model usage.
affects: >=1.0.0
gotchaThe primaryKey field in createTableModel must exist in the columns array, or queries may fail silently.
fix
Ensure columns array includes the primaryKey field and spelling matches.
affects: >=1.0.0
deprecatedSQLBuilder.executeQuery() is deprecated; use DatabaseManagement.getInstance().query() directly instead.
fix
Replace sqlBuilder.executeQuery() with db.query(sql, params).
affects: >=1.0.5
gotchaSoft delete (softDeleteOne, softDelete) require centralFields.isDeletedField to be set in TableModel config.
fix
Add isDeletedField to centralFields object when creating the TableModel.
affects: >=1.0.0
breakingTableModel constructor changed from direct instantiation to factory method createTableModel on database instance.
fix
Use DatabaseManagement.getInstance('db').createTableModel({...}) instead of new TableModel(...).
affects: <1.0.0
Errors
Common errors & fixes
Cannot find name 'DatabaseManagement'
Missing or incorrect import statement.
fix
Use: import { DatabaseManagement } from 'node-mysql-query-utils'
DatabaseManagement.getInstance is not a function
DatabaseManagement was not properly initialized before calling getInstance.
fix
Ensure connectSingleDatabase() is called before getInstance().
TableModel is not a constructor
Attempting to instantiate TableModel directly instead of using createTableModel factory.
fix
Use mainDB.createTableModel({...}) instead of new TableModel({...}).
Cannot read properties of undefined (reading 'query')
DatabaseManagement.getInstance() returned undefined because connection identifier doesn't exist.
fix
Check that identifier passed to getInstance matches one used in connectSingleDatabase().
sqlHelper.createColumns is not a function
sqlHelper is imported as incorrect case or not at all.
fix
Import as: import { sqlHelper } from 'node-mysql-query-utils' (lowercase 's').
Upgrade
Version history
1.0.8latest on npm
Audit
Dependencies
mysql2requiredUnderlying MySQL driver for query execution
Agent activity
2 hits · last 30 days
node
2
Resources