今日已更新 303 条资讯 | 累计 27107 条内容
关于我们

Build a Complete MERN Stack CRUD App with Image Upload (Step-by-Step)

mass status 2026年06月26日 17:36 3 次阅读 来源:Dev.to

Build a Complete MERN Stack CRUD App with Image Upload (Step-by-Step) This is a complete step-by-step guide to building a MERN Stack CRUD application with Image Upload using Multer. Let's dive right into the structure and code! 📂 The Complete Folder Structure mern-crud-app/ │ ├── backend/ │ ├── models/ │ │ └── Employee.js │ ├── routes/ │ │ └── employeeRoutes.js │ ├── uploads/ (Make sure to create this empty folder) │ ├── .env │ └── server.js │ └── frontend/ └── src/ ├── components/ │ └── EmployeeManager.jsx ├── App.jsx └── index.css ⚙️ Part 1: Backend Code 1. backend/.env PORT=5000 MONGO_URI=mongodb://127.0.0.1:27017/mock-crud 2. backend/server.js const express = require ( ' express ' ); const mongoose = require ( ' mongoose ' ); const cors = require ( ' cors ' ); require ( ' dotenv ' ). config (); const app = express (); // Middlewares app . use ( cors ()); app . use ( express . json ()); // Setup static folder for frontend image access app . use ( ' /uploads ' , express . static ( ' uploads ' )); // Routes const employeeRoutes = require ( ' ./routes/employeeRoutes ' ); app . use ( ' /api/employees ' , employeeRoutes ); // MongoDB Connection mongoose . connect ( process . env . MONGO_URI ) . then (() => console . log ( ' MongoDB Connected Successfully! ✅ ' )) . catch (( err ) => console . log ( ' MongoDB Connection Failed ❌ ' , err )); app . get ( ' / ' , ( req , res ) => { res . send ( ' Backend Server is Running! 🚀 ' ); }); const PORT = process . env . PORT || 5000 ; app . listen ( PORT , () => { console . log ( `Server is running on port ${ PORT } ` ); }); 3. backend/models/Employee.js const mongoose = require ( ' mongoose ' ); const employeeSchema = new mongoose . Schema ({ name : { type : String , required : true }, email : { type : String , required : true , unique : true }, phone : { type : String , required : true }, designation : { type : String , required : true }, experience : { type : Number , required : true }, salary : { type : Number , required : tru

本文内容来源于互联网,版权归原作者所有
查看原文