Steps to Create the Backend
Step 1: Create a directory for project
mkdir server
cd server
Step 2: Initialized the Express app and installing the required packages
npm init -y
npm i express mongoose cors
Project Structure:
The updated dependencies in package.json file of backend will look like:
"dependencies": {
"cors": "^2.8.5",
"express": "^4.18.2",
"mongoose": "^8.0.0",
}
Example: Create `server.js` and write the below code.
Javascript
// server.js const express = require( 'express' ); const mongoose = require( 'mongoose' ); const app = express(); const PORT = process.env.PORT || 5000; const cors = require( 'cors' ); mongoose.connect( '<Your connection string>' , { useNewUrlParser: true , useUnifiedTopology: true }); app.use(express.json()); app.use(cors()); // Use the cors middleware const bookSchema = new mongoose.Schema({ title: String, author: String, genre: String, description: String, price: Number, image: String, }); const Book = mongoose.model( 'Book' , bookSchema); // Function to seed initial data into the database const seedDatabase = async () => { try { await Book.deleteMany(); // Clear existing data const books = [ { title: 'The Great Gatsby' , author: 'F. Scott Fitzgerald' , genre: 'Fiction' , description: 'A classic novel about the American Dream' , price: 20, image: 'https://media.w3wiki.org/wp-content/uploads/20240110011815/sutterlin-1362879_640-(1).jpg' }, { title: 'To Kill a Mockingbird' , author: 'Harper Lee' , genre: 'Fiction' , description: 'A powerful story of racial injustice and moral growth' , price: 15, image: 'https://media.w3wiki.org/wp-content/uploads/20240110011854/reading-925589_640.jpg' }, { title: '1984' , author: 'George Orwell' , genre: 'Dystopian' , description: 'A dystopian vision of a totalitarian future society' , price: 255, image: 'https://media.w3wiki.org/wp-content/uploads/20240110011929/glasses-1052010_640.jpg' }, { title: 'The Great Gatsby' , author: 'F. Scott Fitzgerald' , genre: 'Fiction' , description: 'A classic novel about the American Dream' , price: 220, image: 'https://media.w3wiki.org/wp-content/uploads/20240110011929/glasses-1052010_640.jpg' }, { title: 'To Kill a Mockingbird' , author: 'Harper Lee' , genre: 'Fiction' , description: 'A powerful story of racial injustice and moral growth' , price: 1115, image: 'https://media.w3wiki.org/wp-content/uploads/20240110011929/glasses-1052010_640.jpg' }, { title: '1984' , author: 'George Orwell' , genre: 'Dystopian' , description: 'A dystopian vision of a totalitarian future society' , price: 125, image: 'https://media.w3wiki.org/wp-content/uploads/20240110011929/glasses-1052010_640.jpg’ }, ]; await Book.insertMany(books); console.log(' Database seeded successfully '); } catch (error) { console.error(' Error seeding database: ', error); } }; // Seed the database on server startup seedDatabase(); // Define API endpoint for fetching all books app.get(' /api/books ', async (req, res) => { try { // Fetch all books from the database const allBooks = await Book.find(); // Send the entire books array as JSON response res.json(allBooks); } catch (error) { console.error(error); res.status(500).json({ error: ' Internal Server Error' }); } }); app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); }); |
Start the backend server with the following command:
node server.js
Bookstore Ecommerce App using MERN Stack
Bookstore E-commerce project is a great way to showcase your understanding of full-stack development. In this article, we’ll walk through the step-by-step process of creating a Bookstore E-commerce using the MERN (MongoDB, Express.js, React, Node.js) stack. This project will showcase how to set up a full-stack web application where users can view, filter, and purchase various books.
Preview of final output: Let us have a look at how the final application will look like: