#3.6 Middlewares part Two

jini.choi·2022년 6월 17일
0

유튜브 클론코딩

목록 보기
11/27

app.use()

  • golobal middleware를 만들 수 있게 해줌 (app전체 어느 URL에도 작동하는 middleware)

  • app.use() 은 무조건 get위에 와야한다.
    (get보다 아래 있으면 middleware이 작동하지 않음)

  • 모든 route에서 이 함수를 사용하는 것


Code

import express from "express"; 

const PORT = 4000;

const app = express();

//application설정

const loggerMiddleware = (req, res, next) => {
  console.log(`${req.method} ${req.url}`); //어떤 method가 어느 URL로 향하는지
  next();
};
const privateMiddleware = (req, res, next) => {
  const url = req.url;
  if (url === "/protected") {
    return res.send("<h1>Not Allowed</h1>");
  }
  console.log("Allowed, you may continue.");
  next();
};

const handlehome = (req, res) => {
  return res.send("hi");
};
const handledProtected = (req, res) => {
  return res.send("welcome to private lounge.");
};

app.use(loggerMiddleware);
app.use(privateMiddleware);
app.get("/", handlehome); //누군가가 root page로 get request를 보낸다면, 함수 작동
app.get("/protected", handledProtected);

const handleListening = () =>
  console.log(`✅ Server listening on port http://localhost:${PORT} 🚀`);
app.listen(PORT, handleListening);
  • loggerMiddleware는 app 전체에서 사용되고 있고 request에 관한 모든 정보를 가지고 있는 request object를 이용해서 method와 url을 console.log해주는 역할

  • privateMiddleware는 url정보를 받아서 /protected와 같은 걸 확인하면 중간에 개입해서 다음 함수를 호출하는 걸 막고 url이 /protected가 아니라면 다음 함수 호출


✅ /(home) 접속

브라우저console.log

✅ /protected 접속

브라우저
console.log

profile
개발짜🏃‍♀️

0개의 댓글