parse-db-url

2.3.0 · maintenance · verified Wed Apr 22

The `parse-db-url` library is a specialized utility designed to accurately parse database connection URLs into structured configuration objects. Unlike Node.js's built-in `url.parse`, this package understands common conventions associated with various database drivers, such as 'postgres' or 'mysql', and intelligently extracts components like the adapter, host, port, database name, username, and password. A key feature is its ability to handle query-string parameters that can override earlier parts of the URL, offering flexible configuration options. The current stable version is 2.3.0. As a domain-specific parsing tool, its release cadence is slow, with the last publish being over five years ago, indicating a stable, feature-complete state primarily in maintenance mode, rather than active development. It provides a consistent interface for abstracting database connection details, simplifying multi-database application setups.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates how to parse a database URL from an environment variable and a direct string, then access the structured configuration properties like adapter, host, and database.

import parseDbUrl from 'parse-db-url';

const databaseUrl = process.env.DATABASE_URL ?? 'postgres://user:password@host:5432/mydb?ssl=true';

try {
  const dbConfig = parseDbUrl(databaseUrl);
  console.log('Parsed database configuration:');
  console.log(`  Adapter: ${dbConfig.adapter}`);
  console.log(`  Host: ${dbConfig.host}`);
  console.log(`  Port: ${dbConfig.port}`);
  console.log(`  Database: ${dbConfig.database}`);
  console.log(`  User: ${dbConfig.user}`);
  // console.log(`  Password: ${dbConfig.password ? '****' : 'N/A'}`); // Be cautious with logging credentials

  // Example usage with a different URL format
  const sqliteUrl = 'sqlite:///path/to/my.db';
  const sqliteConfig = parseDbUrl(sqliteUrl);
  console.log('\nParsed SQLite configuration:');
  console.log(`  Adapter: ${sqliteConfig.adapter}`);
  console.log(`  Database: ${sqliteConfig.database}`);

} catch (error) {
  console.error('Error parsing database URL:', error.message);
  process.exit(1);
}

view raw JSON →