MERN Stack Day 1
Setup Node Js
Download and install node
https://nodejs.org/en/download/prebuilt-installer
Open CMD and type node -v and npm -v
Create Sample React Js Project
open CMD or Vs Code and run following Command
npx create-react-app app-name
Run Project ->
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap-icons/font/bootstrap-icons.css';
function Home() {
return <>
<>
<div className=" p-4">
<div className="row g-4">
<ProductCard/>
<ProductCard/>
<ProductCard/>
<ProductCard/>
</div>
</div>
</>
</>
}
function ProductCard() {
return <>
<div className="col-12 col-sm-6 col-lg-3">
<div className="card">
<img src="https://i.ibb.co/n8ytJJT/istockphoto-949118068-1024x1024.jpg" className="card-img-top" alt="Card Image"/>
<div className="card-body">
<h5 className="card-title">Card 1</h5>
<p className="card-text">This is a sample card.</p>
</div>
</div>
</div>
</>
}
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
function App() {
return (
<>
<Router>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<Product />} />
<Route path="/contact" element={<About />} />
</Routes>
</Router>
</>
);
}
Home Navigation Header
import React from "react";
import { Link } from 'react-router-dom';
export default function Header() {
return <>
<header>
<nav className="navbar navbar-expand-lg navbar-light bg-light">
<div className="container">
<div className="collapse navbar-collapse" id="navbarNav">
<ul className="navbar-nav ms-auto">
<li className="nav-item">
<Link className="nav-link" to="/">
Home
</Link>
</li>
<li className="nav-item">
<Link className="nav-link" to="/">
Product
</Link>
</li>
<li className="nav-item">
<Link className="nav-link" to="/about">
About
</Link>
</li>
</ul>
</div>
</div>
</nav>
</header>
</>
}
Dynamic Like Active Property Set
location = useLocation();
<li className="nav-item">
<Link className={`nav-link ${location.pathname=='/'?"active":""}`} to="/">
Home
</Link>
</li>
Once your Frontend is Complete then build your react project
run command
npm run build
Create Node Express Server (Server.js)
install express Lib
npm install express
Server code
node Server.js command run server.js
Step1
npm install express Lib
npm install -g nodemon (Use for restart server automatically )
const express = require('express');
const app = express();
// Define a route
app.get('/', (req, res) => {
res.send('Hello, World!');
});
// Start the server
const PORT = 8008;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
run
node server.js
http://localhost:8008/
nun server using nodemon
nodemon server.js
===================================================
Now Connect Your React Index.html with Node Server
const path = require('path');
app.use(express.static(path.join(__dirname, 'build')));
// Define a route
app.get('/', (req, res) => {
// res.send('Hello, World!');
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
nodemon server.js
=======================API Endpoints================
Create Simple Post request Endpoints and Test on postman
// Middleware to parse JSON and form data
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
//=======simple Post Request Endpoint
app.post('/Test',(req,res)=>{
const { email, password } = req.body;
console.log("Email=",email);
console.log("Password=",password);
res.send("ok1");
});
in post man set Header
Request and response Type set in postMan
"Content-Type": "application/json"
call this request using HTML Form
<form action={"/Test"} method={"post"}>
<input type={"email"} nama={"email"}/>
<input type={"password"} name={"password"}/>
<input type={"submit"} value={"Log In"} />
</form>
Using ajax method
install jquery
npm install jquery
import $ from "jquery";
//------------Api Method-------
export async function Post(form, Method) {
return new Promise(function (success, error) {
$.ajax({
url:Method,
type: "POST",
data: form,
success: function (data, txtstatus, res) {
success(data);
},
error: function (data, txtstatus, res) {
error(data);
},
processData: false,
contentType: false
});
});
}
Now Call API using AJAX
function Test() {
const [email,setEmail]=useState();
const [password,setPassword]=useState();
function LogIn() {
let form=new FormData();
form.append('',email);
form.append('',email);
Post(form,"/Test").then((data)=>{
alert(data);
});
}
return<>
<h1>Product</h1>
{/*action={"/Test"} method={"post"}*/}
<div >
<input type={"email"} nama={"email"} onChange={(e)=>{setEmail(e.target.value);}}/>
<input type={"password"} name={"password"} onChange={(e)=>{setPassword(e.target.value)}}/>
<input type={"submit"} value={"Log In"} onClick={LogIn} />
</div>
</>
}
Create Account MongoDB
https://account.mongodb.com/account/login
download MongoDb compass
https://www.mongodb.com/try/download/compass
Login MongoBb Online
Create New Project
============================Screen 2=======================
============================Screen 3=======================
============================Screen 4=======================Create Cluster
============================Screen 6=======================
Now Check
Create Database and Collection Click +
install
//Import
const mongoose = require('mongoose');
// MongoDB Connection URL
//mongodb://localhost:27017/mydatabase
mongoose.connect('Connection-String/DataBaseName', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
db.once('open', () => {
console.log('Connected to MongoDB');
});
async function Insert() {
// Define Schema
const userSchema = new mongoose.Schema({
email: {type: String, required: true, unique: true},
password: {type: String, required: true}
});
// Create Model
const User = mongoose.model('User', userSchema);
try{
//insert
const newUser = new User({email:"sabir123@123.com",password:"password111" });
const savedUser = await newUser.save();
console.log("Insert Data Success.",savedUser);
}catch (e) {
console.log("Error=",e);
}
}
async function Update() {
const ID="673dc1baf6d3b20116e13ffd";
// Define Schema
const userSchema = new mongoose.Schema({
email: {type: String, required: true, unique: true},
password: {type: String, required: true}
});
// Create Model
const User = mongoose.model('User', userSchema);
//Update By Id
const updatedUser=await User.findByIdAndUpdate(
ID,
{
email:"abc@xyz.com",
password:"abc123"
},
{ new: true } // Return the updated document
);
console.log("Update Success",updatedUser);
}
async function Delete() {
const ID="673dc1baf6d3b20116e13ffd";
// Define Schema
const userSchema = new mongoose.Schema({
email: {type: String, required: true, unique: true},
password: {type: String, required: true}
});
// Create Model
const User = mongoose.model('User', userSchema);
//Delete
const deletedUser = await User.findByIdAndDelete(ID);
if (deletedUser) {
console.log("Delete Success.", deletedUser);
} else {
console.log("User not found.");
}
}
// Define Schema
const userSchema = new mongoose.Schema({
email: {type: String, required: true, unique: true},
password: {type: String, required: true}
});
// Create Model
const User = mongoose.model('User', userSchema);
async function Read() {
//Read UserData
const records = await User.find(); // Retrieve all documents
console.log("All Records with IDs:");
records.forEach(record => {
console.log(`ID: ${record._id}, Email: ${record.email}, Password: ${record.password}`);
});
}
async function ReadByEmail() {
//Read UserData
const records = await User.find({email:"user7@domain.com"}); // Retrieve all documents
console.log("All Records with IDs:");
records.forEach(record => {
console.log(`ID: ${record._id}, Email: ${record.email}, Password: ${record.password}`);
});
}






















Comments
Post a Comment