Registry / database / sql-dao

sql-dao

JSON →
library1.4.3jsnpmunverified

sql-dao provides an abstract DatabaseAccessObject class for simple CRUD operations, relation management, and validation on SQL databases. Version 1.4.3 (last release) currently supports only MySQL. It is a small, unmaintained library (last update 2017) with a generator to create DAOs from database schemas. Differentiators include automatic relation loading and built-in validation. Not recommended for new projects; consider more modern ORMs like Sequelize or TypeORM.

npm install sql-dao
INSTALL
IMPORT
SIG · SQL-DAO
S
sql-dao
databasejavascriptv1.4.3
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.

DatabaseAccessObject
const { DatabaseAccessObject } = require('sql-dao')
const DatabaseAccessObject = require('sql-dao')
CommonJS; package provides named export. Do not use default import.
WhereClause
const { WhereClause } = require('sql-dao')
const WhereClause = require('sql-dao/WhereClause')
WhereClause is exported from the main package, not as separate file.
RelationBelongsTo
const { RelationBelongsTo } = require('sql-dao')
const RelationBelongsTo = require('sql-dao').RelationBelongsTo
All relation classes are part of the main export.

Shows basic usage: extend DatabaseAccessObject, define metadata, insert a record.

const { DatabaseAccessObject, WhereClause } = require('sql-dao'); class User extends DatabaseAccessObject { static getMetadata() { return { table: 'users', primaryKey: 'id', columns: { id: { type: 'int' }, name: { type: 'string' } } }; } } async function main() { // Must set database connection globally const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: process.env.DB_PASSWORD ?? '' }); await connection.connect(); // Assume sql-dao uses a global connection; actual usage may vary const user = new User(); user.name = 'John'; await user.insert(); console.log('Inserted user id:', user.id); } main().catch(console.error);
Debug
Known issues
deprecatedPackage last updated in 2017; only MySQL supported; no active development.
fix
Migrate to modern ORM (Sequelize, TypeORM, Prisma) for ongoing support.
affects: *
gotchaRequires manual setup of database connection; not automatically managed.
fix
Ensure to initialize and pass connection properly per library documentation.
affects: *
gotchaDo not create recursive relations (e.g., both belongsTo and hasOne between same classes).
fix
Avoid circular relation definitions; design one-directional associations.
affects: *
gotchaPackage uses CommonJS only; no ESM or TypeScript type definitions.
fix
Use require() in Node.js; no ES import support.
affects: *
Errors
Common errors & fixes
Cannot find module 'sql-dao'
Package not installed or incorrect import path.
fix
npm install sql-dao
DatabaseAccessObject is not a constructor
Using default import instead of named import.
fix
Use const { DatabaseAccessObject } = require('sql-dao')
RelationBelongsTo is not defined
Relation classes are exported from main package, but imported incorrectly.
fix
Use const { RelationBelongsTo } = require('sql-dao')
No database connection set
Did not initialize or pass database connection.
fix
Set connection via package configuration (see docs).
Upgrade
Version history
1.4.3latest on npm
Audit
Dependencies
mysqlrequiredOnly MySQL driver supported; peer dependency for database connection
Agent activity
16 hits · last 30 days
node
14
Meta
1
OpenAI (training)
1
Resources