{"id":25558,"library":"exframe-db","title":"exframe DB","description":"A wrapper around Mongoose for MongoDB connection management within the Harmony Framework. Exframe-db provides Mongoose connection initialization and graceful shutdown integration with exframe-service. Version 4.0.6 requires Node >=18.0.0 and peer dependencies exframe-health 1.x, exframe-logger 3.x, and exframe-service 1.x. It ships TypeScript types. The package is tightly coupled to the Harmony Framework ecosystem and is not intended for standalone use. Compared to mongoose directly, it adds logging and lifecycle hooks.","status":"active","version":"4.0.6","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","typescript"],"install":[{"cmd":"npm install exframe-db","lang":"bash","label":"npm"},{"cmd":"yarn add exframe-db","lang":"bash","label":"yarn"},{"cmd":"pnpm add exframe-db","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required peer dependency for health checks","package":"exframe-health","optional":false},{"reason":"Required peer dependency for logging","package":"exframe-logger","optional":false},{"reason":"Required peer dependency for graceful shutdown","package":"exframe-service","optional":false}],"imports":[{"note":"Package uses CommonJS; ESM import may cause issues unless using a bundler that handles CJS interop.","wrong":"import db from 'exframe-db'","symbol":"default","correct":"const db = require('exframe-db')"},{"note":"init is a method of the default export, not a named export.","wrong":"init({ logger, dbUrl })","symbol":"init","correct":"db.init({ logger, dbUrl })"},{"note":"When using TypeScript with ESM mode, use default import. For CommonJS Node, use require.","wrong":"const db = require('exframe-db')","symbol":"default (TypeScript)","correct":"import db from 'exframe-db'"}],"quickstart":{"code":"const db = require('exframe-db');\nconst logger = require('exframe-logger').create(process.env.LOGSENE_TOKEN || 'token');\ndb.init({ logger, dbUrl: process.env.MONGO_URL || 'mongodb://localhost:27017/harmony' });\nconsole.log('Database initialized');","lang":"javascript","description":"Initializes MongoDB connection with exframe-db using environment variables for logger token and database URL."},"warnings":[{"fix":"Run npm install exframe-health@1.x exframe-logger@3.x exframe-service@1.x","message":"Peer dependencies must be installed manually; npm does not install them automatically in some versions.","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Ensure logger is created via require('exframe-logger').create(...)","message":"init() requires both logger and dbUrl; missing logger will cause undefined errors.","severity":"gotcha","affected_versions":">=4.0.0"},{"fix":"Use require() or configure your bundler to handle CJS interop.","message":"Package is CommonJS only; ESM imports may fail without proper handling.","severity":"gotcha","affected_versions":">=4.0.0"},{"fix":"Update Node to version 18 or later.","message":"Requires Node >=18.0.0; downgrading Node may cause syntax errors.","severity":"breaking","affected_versions":">=4.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run npm install exframe-db","cause":"Package not installed or missing from node_modules.","error":"Cannot find module 'exframe-db'"},{"fix":"Use const db = require('exframe-db') then db.init(...)","cause":"Wrong import style; using named import instead of default.","error":"TypeError: db.init is not a function"},{"fix":"Run npm install exframe-logger@3.x","cause":"Peer dependency exframe-logger not installed.","error":"Error: Cannot find module 'exframe-logger'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}