{"id":2118,"date":"2025-03-24T20:27:47","date_gmt":"2025-03-24T20:27:47","guid":{"rendered":"https:\/\/www.devopsconsulting.in\/blog\/?p=2118"},"modified":"2025-03-24T20:28:28","modified_gmt":"2025-03-24T20:28:28","slug":"https-www-devopsconsulting-in-blog-auto-draft","status":"publish","type":"post","link":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/","title":{"rendered":"Comprehensive Guide to Building a Full-Stack CRUD App with React, Express, and MongoDB"},"content":{"rendered":"\n<p>Here&#8217;s a comprehensive guide to creating a <strong>CRUD (Create, Read, Update, Delete)<\/strong> application using <strong>Express.js<\/strong>, <strong>React.js<\/strong>, and <strong>MongoDB<\/strong>. This guide will cover the <strong>backend setup<\/strong> (with Express and MongoDB) and the <strong>frontend setup<\/strong> (with React). The full-stack application will allow you to perform CRUD operations<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Backend Setup (Express.js and MongoDB)<\/strong><\/h3>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Initialize the Node.js Project<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open your terminal or command prompt, and navigate to the folder where you want to create the project: <code>mkdir express-react-mongo-crud cd express-react-mongo-crud<\/code><\/li>\n\n\n\n<li>Initialize a new Node.js project: <code>npm init -y<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Install Dependencies<\/strong><\/h3>\n\n\n\n<p>Install the necessary backend dependencies using npm:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install express mongoose cors dotenv\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>express<\/code>: Web framework for Node.js.<\/li>\n\n\n\n<li><code>mongoose<\/code>: MongoDB ORM to interact with MongoDB.<\/li>\n\n\n\n<li><code>cors<\/code>: To enable cross-origin resource sharing.<\/li>\n\n\n\n<li><code>dotenv<\/code>: To manage environment variables (e.g., MongoDB URI).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3: Set Up Express Server<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create the <code>server.js<\/code> file in the root directory of the project: <code>touch server.js<\/code><\/li>\n\n\n\n<li>Add the following code to <code>server.js<\/code> to set up Express and MongoDB: <\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code><code>const express = require('express'); const mongoose = require('mongoose'); const cors = require('cors'); require('dotenv').config(); \/\/ For environment variables \/\/ Initialize the app const app = express(); \/\/ Set up middleware app.use(cors()); app.use(express.json()); \/\/ For parsing JSON data \/\/ MongoDB connection mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('MongoDB connected')) .catch((err) => console.log('MongoDB connection error: ' + err)); \/\/ Define routes const itemRoutes = require('.\/routes\/items'); app.use('\/api\/items', itemRoutes); \/\/ Basic route to check server app.get('\/', (req, res) => { res.send('Hello World'); }); \/\/ Start the server const port = process.env.PORT || 5000; app.listen(port, () => { console.log(`Server running on port: ${port}`); });<\/code><\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a <code>.env<\/code> file to store your MongoDB URI: <code>touch .env<\/code><\/li>\n\n\n\n<li>Add the following MongoDB connection string to the <code>.env<\/code> file (adjust for your MongoDB instance): <code>MONGO_URI=mongodb:\/\/localhost:27017\/crud_app<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4: Create MongoDB Model<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a <code>models<\/code> folder to store the database models: <code>mkdir models<\/code><\/li>\n\n\n\n<li>Create a <code>Item.js<\/code> file inside the <code>models<\/code> folder: <code>touch models\/Item.js<\/code><\/li>\n\n\n\n<li>Add the following code to define the <code>Item<\/code> model in <code>Item.js<\/code>: <code>const mongoose = require('mongoose'); const itemSchema = new mongoose.Schema({ name: { type: String, required: true }, description: { type: String, required: true }, }); module.exports = mongoose.model('Item', itemSchema);<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 5: Create Routes for CRUD Operations<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a <code>routes<\/code> folder to store the route definitions: <code>mkdir routes<\/code><\/li>\n\n\n\n<li>Create a <code>items.js<\/code> file inside the <code>routes<\/code> folder: <code>touch routes\/items.js<\/code><\/li>\n\n\n\n<li>Add the following CRUD routes to <code>items.js<\/code>:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code> <code>const express = require('express'); const Item = require('..\/models\/Item'); const router = express.Router(); \/\/ Create a new item router.post('\/', async (req, res) => { const { name, description } = req.body; try { const newItem = new Item({ name, description }); await newItem.save(); res.status(201).json(newItem); } catch (error) { res.status(500).json({ error: error.message }); } }); \/\/ Get all items router.get('\/', async (req, res) => { try { const items = await Item.find(); res.status(200).json(items); } catch (error) { res.status(500).json({ error: error.message }); } }); \/\/ Get a single item router.get('\/:id', async (req, res) => { try { const item = await Item.findById(req.params.id); if (!item) return res.status(404).json({ error: 'Item not found' }); res.status(200).json(item); } catch (error) { res.status(500).json({ error: error.message }); } }); \/\/ Update an item router.put('\/:id', async (req, res) => { try { const updatedItem = await Item.findByIdAndUpdate(req.params.id, req.body, { new: true }); if (!updatedItem) return res.status(404).json({ error: 'Item not found' }); res.status(200).json(updatedItem); } catch (error) { res.status(500).json({ error: error.message }); } }); \/\/ Delete an item router.delete('\/:id', async (req, res) => { try { const deletedItem = await Item.findByIdAndDelete(req.params.id); if (!deletedItem) return res.status(404).json({ error: 'Item not found' }); res.status(200).json({ message: 'Item deleted' }); } catch (error) { res.status(500).json({ error: error.message }); } }); module.exports = router;<\/code><\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Now your backend is set up to handle CRUD operations for items.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Frontend Setup (React.js)<\/strong><\/h3>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Create the React App<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open a new terminal, navigate to the root folder of your project, and create a new React app inside the <code>client<\/code> folder: <code>npx create-react-app client cd client<\/code><\/li>\n\n\n\n<li>Install <strong>Axios<\/strong> to handle HTTP requests: <code>npm install axios<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Create <code>Items.js<\/code> Component<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Inside the <code>src<\/code> folder of your React app (<code>client\/src<\/code>), create a new file named <code>Items.js<\/code>: <code>touch src\/Items.js<\/code><\/li>\n\n\n\n<li>Add the following code to <code>Items.js<\/code> for fetching and displaying items:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code> <code>import React, { useState, useEffect } from 'react'; import axios from 'axios'; const Items = () => { const &#91;items, setItems] = useState(&#91;]); const &#91;name, setName] = useState(''); const &#91;description, setDescription] = useState(''); const &#91;editingItem, setEditingItem] = useState(null); \/\/ Fetch all items from backend useEffect(() => { axios.get('http:\/\/localhost:5000\/api\/items') .then(response => setItems(response.data)) .catch(error => console.log(error)); }, &#91;]); \/\/ Add a new item const handleAddItem = () => { axios.post('http:\/\/localhost:5000\/api\/items', { name, description }) .then(response => { setItems(&#91;...items, response.data]); setName(''); setDescription(''); }) .catch(error => console.log(error)); }; \/\/ Handle editing an item const handleEditItem = (item) => { setEditingItem(item); setName(item.name); setDescription(item.description); }; \/\/ Update an item const handleUpdateItem = () => { axios.put(`http:\/\/localhost:5000\/api\/items\/${editingItem._id}`, { name, description }) .then(response => { setItems(items.map(item => (item._id === response.data._id ? response.data : item))); setEditingItem(null); setName(''); setDescription(''); }) .catch(error => console.log(error)); }; \/\/ Delete an item const handleDeleteItem = (id) => { axios.delete(`http:\/\/localhost:5000\/api\/items\/${id}`) .then(() => setItems(items.filter(item => item._id !== id))) .catch(error => console.log(error)); }; return ( &lt;div> &lt;h1>CRUD Application&lt;\/h1> &lt;input type=\"text\" value={name} onChange={(e) => setName(e.target.value)} placeholder=\"Item name\" \/> &lt;input type=\"text\" value={description} onChange={(e) => setDescription(e.target.value)} placeholder=\"Item description\" \/> &lt;button onClick={editingItem ? handleUpdateItem : handleAddItem}> {editingItem ? 'Update Item' : 'Add Item'} &lt;\/button> &lt;ul> {items.map(item => ( &lt;li key={item._id}> {item.name} - {item.description} &lt;button onClick={() => handleEditItem(item)}>Edit&lt;\/button> &lt;button onClick={() => handleDeleteItem(item._id)}>Delete&lt;\/button> &lt;\/li> ))} &lt;\/ul> &lt;\/div> ); }; export default Items;<\/code><\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\"><\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3: Update <code>App.js<\/code> to Render <code>Items<\/code> Component<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <code>src\/App.js<\/code> and update it to include the <code>Items<\/code> component: <code>import React from 'react'; import '.\/App.css'; import Items from '.\/Items'; function App() { return ( &lt;div className=\"App\"> &lt;Items \/> &lt;\/div> ); } export default App;<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4: Run React and Express Servers<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In your <code>client<\/code> folder, run the React development server: <code>npm start<\/code><\/li>\n\n\n\n<li>In the root folder, run the Express backend server: <code>node server.js<\/code><\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>OutPut:<\/strong><\/h4>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"915\" height=\"492\" src=\"https:\/\/www.devopsconsulting.in\/blog\/wp-content\/uploads\/2025\/03\/image-7.png\" alt=\"\" class=\"wp-image-2119\" srcset=\"https:\/\/www.devopsconsulting.in\/blog\/wp-content\/uploads\/2025\/03\/image-7.png 915w, https:\/\/www.devopsconsulting.in\/blog\/wp-content\/uploads\/2025\/03\/image-7-300x161.png 300w, https:\/\/www.devopsconsulting.in\/blog\/wp-content\/uploads\/2025\/03\/image-7-768x413.png 768w\" sizes=\"auto, (max-width: 915px) 100vw, 915px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Summary<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Backend<\/strong>: Set up Express and MongoDB to handle CRUD operations via API routes (<code>\/api\/items<\/code>).<\/li>\n\n\n\n<li><strong>Frontend<\/strong>: Created a React component (<code>Items.js<\/code>) to interact with the backend, using Axios for HTTP requests to perform CRUD actions (add, update, delete, fetch items).<\/li>\n\n\n\n<li><strong>Running both servers<\/strong>: Use <code>npm start<\/code> for the React frontend and <code>node server.js<\/code> for the backend server.<\/li>\n<\/ul>\n\n\n\n<p>You now have a full-stack CRUD application with <strong>Express<\/strong>, <strong>React<\/strong>, and <strong>MongoDB<\/strong>. Let me know if you need further help or clarification!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here&#8217;s a comprehensive guide to creating a CRUD (Create, Read, Update, Delete) application using Express.js, React.js, and MongoDB. This guide will cover the backend setup (with Express&#8230; <\/p>\n","protected":false},"author":2,"featured_media":2120,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2118","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Comprehensive Guide to Building a Full-Stack CRUD App with React, Express, and MongoDB - DevOps Consulting<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comprehensive Guide to Building a Full-Stack CRUD App with React, Express, and MongoDB - DevOps Consulting\" \/>\n<meta property=\"og:description\" content=\"Here&#8217;s a comprehensive guide to creating a CRUD (Create, Read, Update, Delete) application using Express.js, React.js, and MongoDB. This guide will cover the backend setup (with Express...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/\" \/>\n<meta property=\"og:site_name\" content=\"DevOps Consulting\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-24T20:27:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-24T20:28:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.devopsconsulting.in\/blog\/wp-content\/uploads\/2025\/03\/image-8.png\" \/>\n\t<meta property=\"og:image:width\" content=\"722\" \/>\n\t<meta property=\"og:image:height\" content=\"717\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Abhishek Singh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Abhishek Singh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/\"},\"author\":{\"name\":\"Abhishek Singh\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/#\\\/schema\\\/person\\\/fc397ba8be42f9fdd53450edfc73006f\"},\"headline\":\"Comprehensive Guide to Building a Full-Stack CRUD App with React, Express, and MongoDB\",\"datePublished\":\"2025-03-24T20:27:47+00:00\",\"dateModified\":\"2025-03-24T20:28:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/\"},\"wordCount\":415,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/image-8.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/\",\"url\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/\",\"name\":\"Comprehensive Guide to Building a Full-Stack CRUD App with React, Express, and MongoDB - DevOps Consulting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/image-8.png\",\"datePublished\":\"2025-03-24T20:27:47+00:00\",\"dateModified\":\"2025-03-24T20:28:28+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/#\\\/schema\\\/person\\\/fc397ba8be42f9fdd53450edfc73006f\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/https-www-devopsconsulting-in-blog-auto-draft\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/image-8.png\",\"contentUrl\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/image-8.png\",\"width\":722,\"height\":717},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/\",\"name\":\"DevOps Consulting\",\"description\":\"DevOps Consulting | SRE Consulting | DevSecOps Consulting | MLOps Consulting\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/#\\\/schema\\\/person\\\/fc397ba8be42f9fdd53450edfc73006f\",\"name\":\"Abhishek Singh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g\",\"caption\":\"Abhishek Singh\"},\"description\":\"I\u2019m Abhishek, a DevOps, SRE, DevSecOps, and Cloud expert with a passion for sharing knowledge and real-world experiences. I\u2019ve had the opportunity to work with Cotocus and continue to contribute to multiple platforms where I share insights across different domains: \u2022 DevOps School \u2013 Tech blogs and tutorials \u2022 Holiday Landmark \u2013 Travel stories and guides \u2022 Stocks Mantra \u2013 Stock market strategies and tips \u2022 My Medic Plus \u2013 Health and fitness guidance \u2022 TrueReviewNow \u2013 Honest product reviews \u2022 Wizbrand \u2013 SEO and digital tools for businesses I\u2019m also exploring the fascinating world of Quantum Computing.\",\"url\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/author\\\/abhishek\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comprehensive Guide to Building a Full-Stack CRUD App with React, Express, and MongoDB - DevOps Consulting","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/","og_locale":"en_US","og_type":"article","og_title":"Comprehensive Guide to Building a Full-Stack CRUD App with React, Express, and MongoDB - DevOps Consulting","og_description":"Here&#8217;s a comprehensive guide to creating a CRUD (Create, Read, Update, Delete) application using Express.js, React.js, and MongoDB. This guide will cover the backend setup (with Express...","og_url":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/","og_site_name":"DevOps Consulting","article_published_time":"2025-03-24T20:27:47+00:00","article_modified_time":"2025-03-24T20:28:28+00:00","og_image":[{"width":722,"height":717,"url":"https:\/\/www.devopsconsulting.in\/blog\/wp-content\/uploads\/2025\/03\/image-8.png","type":"image\/png"}],"author":"Abhishek Singh","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Abhishek Singh","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/#article","isPartOf":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/"},"author":{"name":"Abhishek Singh","@id":"https:\/\/www.devopsconsulting.in\/blog\/#\/schema\/person\/fc397ba8be42f9fdd53450edfc73006f"},"headline":"Comprehensive Guide to Building a Full-Stack CRUD App with React, Express, and MongoDB","datePublished":"2025-03-24T20:27:47+00:00","dateModified":"2025-03-24T20:28:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/"},"wordCount":415,"commentCount":0,"image":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/#primaryimage"},"thumbnailUrl":"https:\/\/www.devopsconsulting.in\/blog\/wp-content\/uploads\/2025\/03\/image-8.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/","url":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/","name":"Comprehensive Guide to Building a Full-Stack CRUD App with React, Express, and MongoDB - DevOps Consulting","isPartOf":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/#primaryimage"},"image":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/#primaryimage"},"thumbnailUrl":"https:\/\/www.devopsconsulting.in\/blog\/wp-content\/uploads\/2025\/03\/image-8.png","datePublished":"2025-03-24T20:27:47+00:00","dateModified":"2025-03-24T20:28:28+00:00","author":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/#\/schema\/person\/fc397ba8be42f9fdd53450edfc73006f"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.devopsconsulting.in\/blog\/https-www-devopsconsulting-in-blog-auto-draft\/#primaryimage","url":"https:\/\/www.devopsconsulting.in\/blog\/wp-content\/uploads\/2025\/03\/image-8.png","contentUrl":"https:\/\/www.devopsconsulting.in\/blog\/wp-content\/uploads\/2025\/03\/image-8.png","width":722,"height":717},{"@type":"WebSite","@id":"https:\/\/www.devopsconsulting.in\/blog\/#website","url":"https:\/\/www.devopsconsulting.in\/blog\/","name":"DevOps Consulting","description":"DevOps Consulting | SRE Consulting | DevSecOps Consulting | MLOps Consulting","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.devopsconsulting.in\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.devopsconsulting.in\/blog\/#\/schema\/person\/fc397ba8be42f9fdd53450edfc73006f","name":"Abhishek Singh","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g","caption":"Abhishek Singh"},"description":"I\u2019m Abhishek, a DevOps, SRE, DevSecOps, and Cloud expert with a passion for sharing knowledge and real-world experiences. I\u2019ve had the opportunity to work with Cotocus and continue to contribute to multiple platforms where I share insights across different domains: \u2022 DevOps School \u2013 Tech blogs and tutorials \u2022 Holiday Landmark \u2013 Travel stories and guides \u2022 Stocks Mantra \u2013 Stock market strategies and tips \u2022 My Medic Plus \u2013 Health and fitness guidance \u2022 TrueReviewNow \u2013 Honest product reviews \u2022 Wizbrand \u2013 SEO and digital tools for businesses I\u2019m also exploring the fascinating world of Quantum Computing.","url":"https:\/\/www.devopsconsulting.in\/blog\/author\/abhishek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/posts\/2118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/comments?post=2118"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/posts\/2118\/revisions"}],"predecessor-version":[{"id":2122,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/posts\/2118\/revisions\/2122"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/media\/2120"}],"wp:attachment":[{"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/media?parent=2118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/categories?post=2118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/tags?post=2118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}