برنامه نویسی

نحوه کار به عنوان یک فروشگاه یکپارچه در پشته Mern

این نمونه ای از ساختار مقاله یکپارچه در مورد موضوع مورد نیاز است. می توانید از این ساختار استفاده کنید و آن را با محتوای و کد دقیق بسته بندی کنید:


عنوان مقاله:

نحوه کار به عنوان یک فروشگاه الکترونیکی یکپارچه با استفاده از Mern Stack: Directory Step Step


مقدمه:

  • چرا Mern Stack (MongoDB ، Express.js ، React ، Node.js) گزینه ای عالی برای ساخت فروشگاه های الکترونیکی است؟
  • ویژگی های فروشگاهی که خواهیم ساخت:
    • محصولات را نشان دهید.
    • سیستم ثبت نام کاربر.
    • سبد خرید.
    • پرداخت الکترونیکی ایمن
    • خطر برای سرپرست.

الزامات اساسی:

  1. دانش JavaScript و ES6+.
  2. اصول React و Node.js. را درک کنید.
  3. node.js و mongoDB را نصب کنید.
  4. ویرایشگر کدیر مانند VS Code.

مرحله 1: تهیه پروژه

پوشه:

mern-store/  
├── client/          # Frontend (React)  
├── server/          # Backend (Node.js + Express)  
├── models/          # MongoDB Models  
├── routes/          # API Routes  
└── .env             # Environment Variables  
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آماده سازی پس زمینه:

mkdir mern-store && cd mern-store  
mkdir server && cd server  
npm init -y  
npm install express mongoose cors dotenv bcryptjs jsonwebtoken stripe  
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آماده سازی:

cd ..  
npx create-react-app client  
cd client  
npm install axios react-router-dom redux react-redux @reduxjs/toolkit  
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


مرحله 2: ساختمان با پس زمینه

1. مدل محصول (مدل محصول):

// server/models/Product.js
const mongoose = require("mongoose");

const ProductSchema = new mongoose.Schema({
  name: { type: String, required: true },
  price: { type: Number, required: true },
  description: { type: String },
  image: { type: String },
  category: { type: String },
});
module.exports = mongoose.model("Product", ProductSchema);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2. نمای API (مسیرها) ایجاد کنید:

// server/routes/productRoutes.js
const express = require("express");
const router = express.Router();
const Product = require("../models/Product");

// جلب جميع المنتجات
router.get("/", async (req, res) => {
  try {
    const products = await Product.find();
    res.json(products);
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

// إنشاء منتج جديد (للمشرف)
router.post("/", async (req, res) => {
  const product = new Product({ ...req.body });
  try {
    const newProduct = await product.save();
    res.status(201).json(newProduct);
  } catch (err) {
    res.status(400).json({ message: err.message });
  }
});
module.exports = router;
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3. ادغام مسیرها با Server.js:

// server/server.js
const express = require("express");
const mongoose = require("mongoose");
const cors = require("cors");
require("dotenv").config();

const app = express();
app.use(cors());
app.use(express.json());

// توصيل MongoDB
mongoose.connect(process.env.MONGO_URI)
  .then(() => console.log("Connected to MongoDB"))
  .catch(err => console.error(err));

// Routes
app.use("/api/products", require("./routes/productRoutes"));
app.use("/api/users", require("./routes/userRoutes")); // نظام المستخدمين
app.use("/api/orders", require("./routes/orderRoutes")); // نظام الطلبات

const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


مرحله 3: ساختمان (React)

1. مشاهده محصولات:

// client/src/components/ProductList.js
import React, { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { fetchProducts } from "../features/productsSlice";

const ProductList = () => {
  const dispatch = useDispatch();
  const products = useSelector((state) => state.products.items);

  useEffect(() => {
    dispatch(fetchProducts());
  }, [dispatch]);

  return (
    <div className="product-grid">
      {products.map((product) => (
        <div key={product._id} className="product-card">
          <img src={product.image} alt={product.name} />
          <h3>{product.name}</h3>
          <p>{product.price} $</p>
          <button>Add to Cart</button>
        </div>
      ))}
    </div>
  );
};
export default ProductList;
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2. مدیریت ردوکس (Redux):

// client/src/features/cartSlice.js
import { createSlice } from "@reduxjs/toolkit";

const cartSlice = createSlice({
  name: "cart",
  initialState: { items: [] },
  reducers: {
    addToCart: (state, action) => {
      const existingItem = state.items.find(
        (item) => item._id === action.payload._id
      );
      if (existingItem) {
        existingItem.quantity += 1;
      } else {
        state.items.push({ ...action.payload, quantity: 1 });
      }
    },
  },
});

export const { addToCart } = cartSlice.actions;
export default cartSlice.reducer;
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


مرحله 4: پرداخت الکترونیکی (نوار) ​​را اضافه کنید

  1. یک حساب کاربری را در Stripe ثبت کنید.
  2. بسته راه راه را در پس زمینه نصب کنید:
npm install stripe
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. رابط پرداخت ایجاد کنید:
// server/routes/paymentRoutes.js
const stripe = require("stripe")(process.env.STRIPE_SECRET_KEY);

router.post("/create-payment-intent", async (req, res) => {
  const { amount } = req.body;
  const paymentIntent = await stripe.paymentIntents.create({
    amount: amount * 100, // تحويل المبلغ إلى سنتات
    currency: "usd",
  });
  res.send({ clientSecret: paymentIntent.client_secret });
});
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


مرحله 5: فروشگاه را منتشر کنید

  1. پشتی پیمان:

  2. انتشار را منتشر کنید:

  3. پیوند دامنه:

    • طیف وسیعی از سایت ها مانند Namecheap را بخرید و آن را به سرویس نشر پیوند دهید.

مشاوره امنیتی:

  • برای همه اتصالات از https استفاده کنید.
  • داده های حساس (کلیدهای API) در یک پرونده .envبشر
  • اعتبار سنجی ورودی را برای جلوگیری از حملات مانند تزریق SQL بررسی کنید.

پایان:

  • می توانید با افزودن ویژگی هایی مانند:
    • سیستم ارزیابی محصول.
    • توصیه های محصول بر اساس رفتار کاربر.
    • کنترل پانل پیشرفته.

منابع مفید:


یادداشتمی توانید در صورت نیاز خواننده تصاویر و کدهای مفصل اضافه کنید! 🛒💻

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا