Mongodb(Mongoose) Provider

This provider sets up MongoDB connectivity with Mongoose for Express projects, including environment validation, a database connection helper.


Installation Guide

npx servercn-cli add pr mongodb-mongoose

Basic Implementation

src/configs/env.ts
import "dotenv-flow/config";
import { z } from "zod";
 
export const envSchema = z.object({
  DATABASE_URL: z.url(),
});
 
export type Env = z.infer<typeof envSchema>;
 
const result = envSchema.safeParse(process.env);
 
if (!result.success) {
  console.error("❌ Invalid environment configuration");
  console.error(z.prettifyError(result.error));
  process.exit(1);
}
 
export const env: Readonly<Env> = Object.freeze(result.data);
 
export default env;

src/configs/db.ts
import mongoose from "mongoose";
import env from "./env";
 
if (!env.DATABASE_URL) {
  throw new Error("Please provide DATABASE_URL in the environment variables");
}
 
export const connectDB = async (): Promise<void> => {
  try {
    const conn = await mongoose.connect(env.DATABASE_URL as string);
    console.log(`MongoDB Connected: ${conn.connection.host}`);
  } catch (error) {
    console.error("MongoDB Connection Failed:", error);
    process.exit(1);
  }
};

Usage

import { connectDB } from "./configs/db";
 
await connectDB();

File & Folder Structure

Loading files...

Installation

npx servercn-cli add pr mongodb-mongoose