{"id":42539,"library":"connect2mongodb","title":"connect2mongodb","description":"Lightweight utility to dynamically connect and disconnect from a MongoDB database using mongoose. Current stable version 1.1.68. Designed for Express/Next.js servers, it simplifies connection management by reading MONGODB_URI or MONGO_URI from environment variables. Key differentiator: allows switching between a fixed database (URI includes db name) and a dynamic database (URI without db name, passed as argument). Requires a specific mongoose version (8.14.2) to avoid runtime errors. Low download volume and minimal maintenance.","status":"active","version":"1.1.68","language":"javascript","source_language":"en","source_url":"https://github.com/Capta1nRaj/connect2mongodb","tags":["javascript","express","mongodb","mognoose","mongo","dotenv","database","db","official","typescript"],"install":[{"cmd":"npm install connect2mongodb","lang":"bash","label":"npm"},{"cmd":"yarn add connect2mongodb","lang":"bash","label":"yarn"},{"cmd":"pnpm add connect2mongodb","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency - must be installed at exact version 8.14.2 or connections may fail","package":"mongoose","optional":false}],"imports":[{"note":"ESM-only package; no CommonJS support. Works with TypeScript.","wrong":"const connect2MongoDB = require('connect2mongodb')","symbol":"connect2MongoDB","correct":"import { connect2MongoDB } from 'connect2mongodb'"},{"note":"Correct function name is disconnect2MongoDB, not disconnectDB.","wrong":"import { disconnectDB } from 'connect2mongodb'","symbol":"disconnect2MongoDB","correct":"import { disconnect2MongoDB } from 'connect2mongodb'"},{"note":"No default export; use named exports only.","wrong":"import connect2mongodb from 'connect2mongodb'; connect2mongodb()","symbol":"default import","correct":"import * as connect2mongodb from 'connect2mongodb'; connect2mongodb.connect2MongoDB()"}],"quickstart":{"code":"// Ensure mongoose@8.14.2 is installed as a peer dependency\nimport { connect2MongoDB, disconnect2MongoDB } from 'connect2mongodb';\n\n// Method 1 (fixed database): set MONGODB_URI=mongodb+srv://user:pass@host/db in .env\nasync function fixedDB() {\n  try {\n    const connected = await connect2MongoDB();\n    console.log('Connected:', connected);\n    // ... use mongoose models\n    const disconnected = await disconnect2MongoDB();\n    console.log('Disconnected:', disconnected);\n  } catch (err) {\n    console.error(err);\n  }\n}\n\n// Method 2 (dynamic database): set MONGO_URI=mongodb+srv://user:pass@host/ in .env (no db name)\nasync function dynamicDB() {\n  try {\n    const connected = await connect2MongoDB('my_database');\n    console.log('Connected:', connected);\n    const disconnected = await disconnect2MongoDB();\n    console.log('Disconnected:', disconnected);\n  } catch (err) {\n    console.error(err);\n  }\n}\n\nfixedDB();\ndynamicDB();","lang":"typescript","description":"Demonstrates two ways to connect: fixed database via MONGODB_URI or dynamic database via MONGO_URI plus database name argument."},"warnings":[{"fix":"Run: npm install mongoose@8.14.2","message":"Requires exact mongoose version 8.14.2 – other versions cause errors when accessing DB after connection.","severity":"gotcha","affected_versions":">=0"},{"fix":"Use exactly MONGODB_URI for fixed database (includes db name) or MONGO_URI for dynamic database (no db name).","message":"Environment variables MONGODB_URI (fixed) and MONGO_URI (dynamic) are case-sensitive. Wrong key leads to connection failure.","severity":"gotcha","affected_versions":">=0"},{"fix":"Use ES import syntax: import { connect2MongoDB } from 'connect2mongodb'","message":"The package is ESM-only; require() will throw a runtime error.","severity":"gotcha","affected_versions":">=0"},{"fix":"","message":"No breaking changes documented; version is stable at 1.x.","severity":"breaking","affected_versions":""},{"fix":"","message":"No deprecations noted.","severity":"deprecated","affected_versions":""}],"env_vars":null,"search_vec":"'1.1.68':18 '8.14.2':65 'allow':39 'argument':59 'avoid':67 'connect':6,25 'connect2mongodb':1 'current':15 'databas':12,44,52,82 'db':47,55,83 'design':19 'differenti':38 'disconnect':8 'dotenv':81 'download':71 'dynam':5,51 'environ':35 'error':69 'express':77 'express/next.js':21 'fix':43 'includ':46 'javascript':76 'key':37 'lightweight':2 'low':70 'mainten':75 'manag':26 'minim':74 'mognoos':79 'mongo':32,80 'mongodb':11,29,78 'mongoos':14,63 'name':48,56 'offici':84 'pass':57 'read':28 'requir':60 'runtim':68 'server':22 'simplifi':24 'specif':62 'stabl':16 'switch':40 'typescript':85 'uri':30,33,45,53 'use':13 'util':3 'variabl':36 'version':17,64 'volum':72 'without':54","created_at":"2026-06-05T16:55:28.328764+00:00","updated_at":"2026-06-05T16:55:28.328764+00:00","problems":[{"fix":"Uninstall current mongoose and install exactly 8.14.2: npm un mongoose && npm i mongoose@8.14.2","cause":"Incompatible mongoose version installed (not 8.14.2).","error":"TypeError: mongoose.model is not a function"},{"fix":"Ensure .env file contains MONGODB_URI or MONGO_URI and import 'dotenv/config' at entry point.","cause":"Environment variables MONGODB_URI or MONGO_URI are missing or not loaded (dotenv not configured).","error":"MongooseError: The uri parameter to mongoose.connect() must be a string, got undefined"},{"fix":"Add 'type': 'module' to package.json or convert file to .mjs extension.","cause":"Package is ESM-only; project not configured for ES modules.","error":"SyntaxError: Cannot use import statement outside a module"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/Capta1nRaj/connect2mongodb#readme","github":"https://github.com/Capta1nRaj/connect2mongodb","docs":null,"changelog":null,"pypi":null,"npm":"connect2mongodb","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}