MERN Part-6.1을 사용하는 ECOMMERCE 웹 사이트 ( 인증 { 설정 } )

이 블로그에서는 userModel , userController 및 userRoutes 를 만들어 사용자를 설정합니다. 이 블로그는 길지만 우리 제품과 거의 같기 때문에 매우 간단합니다.



1단계 필요한 의존성 설치하기

터미널을 열고 다음 종속성을 설치하십시오.
  • BcryptJs - 비밀번호 암호화 및 해독용
  • Json 웹 토큰 - 인증용
  • 유효성 검사기 - 이름 등과 같은 일부 필드의 유효성을 검사합니다
  • .
  • Nodemailer - 메일 전송용
  • 쿠키 파서
  • 바디 파서

  • 글로 npm i bcryptjs jsonwebtoken validator nodemailer cookie-parser body-parser .

    Step-2 설치 후 userModel 폴더 안에 userModel.js라는 파일을 만들어 models를 만듭니다.

    사용자 모델의 코드는 다음과 같습니다. 이해가 안되는 부분이 있다면 댓글로 알려주세요 :)

    const mongoose = require("mongoose");
    const validator = require("validator");
    
    const userSchema = new mongoose.Schema({
      name: {
        type: String,
        required: [true, "Please Enter Your Name"],
        maxLength: [30, "Name cannot exceed 30 characters"],
        minLength: [4, "Name should have more than 4 characters"],
      },
      email: {
        type: String,
        required: [true, "Please Enter Your Email"],
        unique: true,
        validate: [validator.isEmail, "Please Enter a valid Email"],
      },
      password: {
        type: String,
        required: [true, "Please Enter Your Password"],
        minLength: [8, "Password should be greater than 8 characters"],
        select: false,
      },
      avatar: {
        public_id: {
          type: String,
          required: true,
        },
        url: {
          type: String,
          required: true,
        },
      },
      role: {
        type: String,
        default: "user",
      },
      createdAt: {
        type: Date,
        default: Date.now,
      },
    
      resetPasswordToken: String,
      resetPasswordExpire: Date,
    });
    
    module.exports = mongoose.model("User", userSchema);
    


    3 단계 registerUser 폴더 안에 userController.js라는 새 파일에서 controllers 기능을 만들 수 있습니다.

    const ErrorHandler = require("../utils/errorHandler");
    const catchAsyncErrors = require("../middleware/catchAsyncErrors");
    const User = require("../models/userModel");
    
    // Register User
    exports.registerUser = catchAsyncErrors(async (req, res, next) => {
      const { name, email, password } = req.body;
    
      const user = await User.create({
        name,
        email,
        password,
        avatar: {
          public_id: "This is a sample id",
          url: "profile pic url",
        },
      });
    
      res.status(201).json({
        success: true,
        user,
      });
    });
    


    여기서 우리는 model 뿐만 아니라 ErrorHandlers 를 가져옵니다.
    그리고 함수 내에서 우리는 destructured 우리의 req.body를 추출하고 name , email & password를 추출하고 create({})를 사용하여 사용자를 생성합니다. avatar 프론트엔드를 하면서.

    Step-4 이제 route 폴더 안에 cloudinary를 만들고 다음 코드를 작성해 보겠습니다.

    const express = require("express");
    const router = express.Router();
    const { registerUser } = require("../controllers/userController");
    
    router.route("/register").post(registerUser);
    
    module.exports = router;
    
    


    그 설명은 매우 간단합니다. 방금 userRoutes.js를 가져오고 express를 호출한 다음 Router()에서 /register 함수를 사용하여 경로registerUser를 만들었습니다.

    5단계 이제 이 라우터를 사용하기 위해 userController 파일 안에 다음 코드를 작성합니다.
    1. app.js 2. const userRoutes = require("./routes/userRoutes)
    우리app.use("/api/v1", userRoutes)는 다음과 같이 보일 것입니다.


    이렇게 기본 설정이 완료되었습니다.
    우리는 app.js가 될 것입니다 encrypting

    좋은 웹페이지 즐겨찾기