[TIL] Middleware / 사용중 port 확인 및 종료 (2021.08.28)

10379 단어 PORTmiddlewarePORT

Middleware & Controller

Middleware가 곧 Controller고, Controller는 곧 Middleware이다. 두 함수 모두 인자로 req, res, next를 가지고 있으나, Controller는 next()를 실행하지 않고(종료하기 때문에) Middleware는 next()를 실행하여 다음 Middelware 혹은 Controller로 넘어간다.

import express from "express";

const PORT = 5006;
const app = express();

const handleHome = (req, res) => {
  return res.send("<h1>Welcome to Home</h1>");
};
const logger = (req, res, next) => {
  console.log(`Method: ${req.method} / URL: ${req.url}`);
  next();
};
const handleLogin = (req, res, next) => {
  //process 종료
  return res.send('Please enter username & password');
}
const privateMiddleware = (req, res, next) => {
  const url = req.url;
  console.log(typeof url);
  if (url === "/protected") {
    return res.send("<h1>Not Allowed</h1>");
  }
  console.log("Allowed");
  //다음 middleware 혹은 controller로 넘어간다
  next();
};
const handleProtected = (req, res, next) => {
  return res.send("</h1>Welcome to private lounge!</hq>");
}
app.use("/", logger);     // '/'로 들어오는 모든 요청에 대해 logger를 실행
app.use('/login', logger);// '/login'로 들어오는 모든 요청에 대해 logger를 실행

app.get("/", handleHome);
app.get("/login", handleLogin);
app.get("/protected", logger, privateMiddleware, handleProtected);

app.listen(PORT, () => {
  console.log(`Server is listening on port ${PORT}`);
});

app.use

app.use('/url', middleware) => /url 으로 들어오는 모든 요청에 대해 middleware()를 실행한다.

Port 확인 및 종료

sudo lsof -PiTCP -sTCP:LISTEN // LISTEN 중인 포트 리스트 
sudo lsof -i :3000            // 특정 포트 확인
sudo kill -9 PID              // 특정 포트 종료

좋은 웹페이지 즐겨찾기