Search⌘ K
AI Features

Solution: Dynamically Load a Database Client Using ES Modules

Explore how to implement a dynamic factory function in Node.js that loads and instantiates database clients using ES modules. Understand how to replace conditional import logic with a map-driven asynchronous import strategy, enabling environment-specific client creation without exposing import details to consumers.

Solution explanation

  • Lines 1–4: We define a pathMap object that maps environment names ('dev''prod') to module paths ('./sqlite.js''./postgres.js').

    • This replaces conditional logic with a clean lookup table for selecting modules dynamically.

  • Lines 6–11: We implement createDbClient(env) as an asynchronous factory.

    • It retrieves the correct ...