UNPKG

delta-file-multer

Version:

A simple plug-n-play file upload middleware using Multer and MongoDB

124 lines (87 loc) β€’ 2.94 kB
# πŸ“¦ delta-file-multer A plug-and-play file upload handler built on top of **Multer** and **Mongoose**. Save images/files to disk and store their filenames in MongoDB β€” all in a single line of configuration! --- ## πŸš€ Installation Install via NPM: ```bash npm install delta-file-multer ``` --- ## πŸ”Ή Usage ### 1️⃣ Import and Use in Your Server File ```js import express from "express"; import mongoose from "mongoose"; import deltaMulter from "delta-file-multer"; import { connectDB } from "./db.js"; const app = express(); connectDB(); // your own DB connection logic // File upload setup deltaMulter({ app, mongoose, dbField: "profilePic", // Field name (used in schema) collectionName: "user", // MongoDB collection name uploadPath: "./uploads", // Local upload folder route: "/api/uploadProfile", // API endpoint }); app.listen(4000, () => { console.log("Server running on http://localhost:4000"); }); ``` --- ## πŸ§ͺ How to Test via Postman 1. Open Postman 2. Set method to `POST` 3. Endpoint: `http://localhost:4000/api/uploadProfile` 4. Go to `Body > form-data` 5. Add a field with: - **Key**: `file` - **Type**: File - **Value**: Upload any image --- ## πŸ“¦ Output Example in Postman ```json { "success": true, "message": "File uploaded successfully", "file": "1743961538129_Screenshot 2025-03-18 122733.png" } ``` ## πŸ“¦ Output Example in MongoDB A sample document saved in MongoDB: ```json { "_id": "123abc...", "profilePic": "1680458392357_image.png", "__v": 0 } ``` --- ## πŸ“Œ Features βœ… Plug-and-play file upload logic βœ… Auto-creates Mongoose model if not defined βœ… Auto-saves uploaded file metadata to MongoDB βœ… Supports custom routes, upload folders, and field names βœ… Works with any Express + Mongoose project --- ## βš™οΈ Options | Property | Type | Required | Description | | ---------------- | ------ | -------- | ----------------------------------------------- | | `app` | Object | βœ… | Your Express app instance | | `mongoose` | Object | βœ… | Your connected Mongoose instance | | `dbField` | String | βœ… | Field name for storing file name in DB | | `collectionName` | String | βœ… | MongoDB collection where file metadata is saved | | `uploadPath` | String | βœ… | Path to store uploaded files locally | | `route` | String | βœ… | API route for file upload | --- ## πŸ“œ License This project is licensed under the **MIT License**. --- ## πŸ’» Contributing Pull requests, issues, and feedback are always welcome. Let’s make file uploads easier, together! --- Happy uploading! πŸŽ‰ ---