ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • express 기초
    express 2022. 1. 14. 18:57


    https://expressjs.com/ko/4x/api.html#req
    서버 메소드들 나와있음

     

     

    사용자가 브라우저를 통해 request를 서버에 준다.

    서버는 그 request를 받고 response를 준다.

     

    const express = require('express')
    
    const POST = 4000;
    
    const app = express();
    
    const gossipMiddleware = (req, res, next) => {
      console.log(`someone is trying go to ${req.url}`);
      next();
    };
    
    const handleHome = (req, res) => {
      //we(server) get req  we return res
      return res.send("i am home mom!");
    };
    
    app.get("/", gossipMiddleware, handleHome);
    
    app.listen(POST, () =>
      console.log(`Server listening on port http://localhost:${POST}🐱‍🏍`)
    );


    라우팅


    클라이언트로부터 요청받은 URL과 뷰를 매칭시키는 것



    app.get()

    get("/특정url", callback)
    app.get 함수는 GET 방식으로 들어오는 경로를 연결하여, 이에 대응하는 동작을 콜백 함수로 기술할 수 있도록 합니다.

    콜백 함수의 req는 요청객체(Request Object)이고 res는 응답객체(Response Object)

    특정router.get으로 사용시에는 app.use("/라우터경로", 특정router)  /라우터경로/특정url로 req가 오면  callback을 res함

     

    app.get("/(url주소)", 브라우저를 통해서 주소로 req가 서버로 올 때 실행될 콜백함수)

     

    미들웨어 middle (soft)ware: 가운데 끼어있음. req와 res사이에 끼어있는 녀석. req와 res의 사이에서 실행됨


    (나 node.js )서버 response

    all handlers are middlewares
    all middlewares are handlers

    handlers=controller

    app.use()


    global middleware를 만들수 있게 해줌-어떤 url로가도 실행됨
    항상 app.get()위에 놓아야지 모든 route에 대해서 미들웨어를 실행해줌 

    일반적인 controler 벗 next()란 함수가 추가되어있음
    글로벌 미들웨어사용(use()) 하나에만 적용도 가능(세번째 인자로전달)

    만약에 미들웨어가 next()를 호출하지 않으면 다음함수들은 절대 실행되지 않음
    미들웨어가 만약에 무언가 return하면 거기서 종료- 유저가 로그인햇는지 안했는지 확인하는 미들웨어도 있음

    핸들홈에 next가 붙는다면 미들웨어가 됌
    브라우저 request

     

    app.use의활용(Router)

    1. 글로벌 미들웨어로 사용 : app.use(logger)로 글로벌에 미들웨어 morgan을 박아줌
    2. 특정 url과 Router를 연결 : app.use("/video", videoRouter)  브라우저를 통해 /video로 시작하는 url의 req가 서버로 오면  express는 여기있는 videoRouter안으로 들어갈 것임. 위의 예제에서는 videoRouter안에 get이 하나밖에 없으므로 /video/watch의 req에 대한 res로 handleWatchVideo가 콜백됌

     

    코드 정리(clean code)

    Controller와 Router로 나누자

     

    URL parameter

    url:egg 점두개를 붙여주면 그 뒤에 egg가 변수로 취급된다.

          ex>

    'express' 카테고리의 다른 글

    미들웨어 간단정리  (0) 2022.02.06
    JWT(Jason Web Token)  (0) 2022.01.20
    Cors(Cross Origin Resource Sharing)  (0) 2022.01.19
    HTTP Cookies and Session  (0) 2022.01.17
    로그인 암호화, 사용자 비밀번호 암호화하기  (0) 2022.01.16
Designed by Tistory.