미들웨어
Web/Node.js

미들웨어

// index.js //

// 미들웨어가 로그인 여부를 확인하는 코드
const loginCheck = (req, res, next) => {
  // const userLogin = true;
  const userLogin = false;

  if (userLogin) {
    next();
  } else {
    res.status(400).json({
      message: "login failed",
    });
  }
}

router.get('/', loginCheck, (req, res) => {
  res.status(200).json({
    message: "login success!"
  });
});

module.exports = router;

상수로 로그인이 되어있는지 여부를 가정하고 GET 메서드를 보내면 postman에서 JSON 형식으로 "login failed" 응답을 확인할 수 있다.

이 부분을 모듈화해서 다음과 같이 활용할 수도 있다.

// ./module/loginCheck.js //

// 미들웨어가 로그인 여부를 확인하는 코드
const loginCheck = (req, res, next) => {
    const userLogin = true;
    // const userLogin = false;
    if (userLogin) {
        next();
    } else {
        res.status(400).json({
            message: "login failed",
        });
    }
};

// index.js같은 외부 파일에서도 사용할 수 있도록 해주는 코드
module.exports = loginCheck;
// ./routes/index.js //

var express = require('express');
var router = express.Router();

const loginCheck = require("../module/loginCheck");

router.get("/", loginCheck, (req, res) => {
  res.status(200).json({
    message: "login success!"
  });
});

module.exports = router;

모듈로 사용해도 잘 동작한다.

'Web > Node.js' 카테고리의 다른 글

mongoose  (0) 2022.01.10
express-session  (0) 2022.01.04
express - HTTP method  (0) 2022.01.04
Routing  (0) 2022.01.04
express와 nodemon  (0) 2022.01.04