MERN

⌘K
  1. Home
  2. Docs
  3. MERN
  4. ব্যাকএন্ড সেটআপ :

ব্যাকএন্ড সেটআপ :

প্রজেক্ট তৈরী

backend ফোল্ডারে প্রজেক্ট তৈরী করি

npm init -y

ইনস্টল লাইব্রেরি :

npm install express mongoose cors b
  • mongoose :যেহেতু mongodb এর সাথে কাজ করতে হবে।
  • express এক্সপ্রেস দিয়ে এপি আই বানাবো আর
  • cors ফ্রন্টএন্ড যেহেতু অন্য হোস্ট এ থাকবে এজন cors ইনস্টল করবো।

index.js নামে একটি বানাই এবং এপ্লিকেশন এর স্টার্ট পয়েন্ট হিসাবে সেট করি এবং বার বার কোড পরিবর্তন করলে সার্ভার রিস্টার্ট না দিতে হয় এজন্য nodemon সেট করি

npm install nodemon -D
npm install dotenv

{
  "name": "backend",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start":"nodemon index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "cors": "^2.8.5",
    "express": "^4.18.2",
    "mongoose": "^8.0.1"
  },
  "devDependencies": {
    "nodemon": "^3.0.1"
  }
}

এপ্লিকেশন বানাই এবং স্টার্ট করি।

const express = require("express");
const app = express();
const cors = require('cors');
require("dotenv").config();
// parse application/json
app.use(bodyParser.json())
app.use(cors()); // Enable CORS
const port = process.env.PORT || 4000;
app.get("/",(req,res)=>{
    res.send("HelLo");
});

app.listen(port,()=>{
    console.log(`SERVER STARTED ${port}`);

});

ডেটাবেজের সাথে সংযোগ ফাইল তৈরী করি

DATABSE_URI =mongodb+srv://oleetechs:oLwAAviECTp6mnCt@restapi.learsdy.mongodb.net/test?retryWrites=true&w=majority
const mongose = require("mongoose");

const connectToDB = async()=>{
    try {
        mongose.connect(process.env.DATABSE_URI);
        console.log("Database Connected");
    } catch (error) {
        console.log("Database Connected Error");
    }

}

module.exports = {connectToDB};

const {connectToDB} = require("./database");
app.listen(port,()=>{
    connectToDB();
});

মডেল বানাই

const mongoose = require('mongoose');
// Define the schema
const userSchema = new mongoose.Schema({
    name: String,
    email: String,
    password: String,
    gender: String,
    position: String,
    married: Boolean,
    description: String,
  });
  
  // Create the model
  const User = mongoose.model('User', userSchema);

  module.exports = {User}

// routes.js
const myrouter = require("express").Router();
const { User } = require("./models");

// Create a new user
myrouter.post("/", async (req, res) => {
  try {
    const newUser = new User(req.body);
    await newUser.save();
    res.status(201).json(newUser);
  } catch (error) {
    console.error(error);
    res.status(500).send("Internal Server Error");
  }
});

// Get all users
myrouter.get("/", async (req, res) => {
  try {
    const users = await User.find({});
    res.send(users);
  } catch (error) {
    console.error(error);
    res.status(500).send("Internal Server Error");
  }
});

// Get a specific user by ID
myrouter.get("/:id", async (req, res) => {
  try {
    const user = await User.findById(req.params.id);
    if (!user) {
      return res.status(404).send("User not found");
    }
    res.send(user);
  } catch (error) {
    console.error(error);
    res.status(500).send("Internal Server Error");
  }
});

// Update a user by ID
myrouter.put("/:id", async (req, res) => {
  try {
    const user = await User.findByIdAndUpdate(req.params.id, req.body, { new: true });
    if (!user) {
      return res.status(404).send("User not found");
    }
    res.send(user);
  } catch (error) {
    console.error(error);
    res.status(500).send("Internal Server Error");
  }
});

// Delete a user by ID
myrouter.delete("/:id", async (req, res) => {
  try {
    const user = await User.findByIdAndDelete(req.params.id);
    if (!user) {
      return res.status(404).send("User not found");
    }
    res.send("User deleted successfully");
  } catch (error) {
    console.error(error);
    res.status(500).send("Internal Server Error");
  }
});

module.exports = myrouter;

const myrouter = require("./routes"); 
app.use("/api", myrouter);

How can we help?