-
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=controllerapp.use()
global middleware를 만들수 있게 해줌-어떤 url로가도 실행됨
항상 app.get()위에 놓아야지 모든 route에 대해서 미들웨어를 실행해줌
일반적인 controler 벗 next()란 함수가 추가되어있음
글로벌 미들웨어사용(use()) 하나에만 적용도 가능(세번째 인자로전달)
만약에 미들웨어가 next()를 호출하지 않으면 다음함수들은 절대 실행되지 않음
미들웨어가 만약에 무언가 return하면 거기서 종료- 유저가 로그인햇는지 안했는지 확인하는 미들웨어도 있음
핸들홈에 next가 붙는다면 미들웨어가 됌
브라우저 requestapp.use의활용(Router)
- 글로벌 미들웨어로 사용 : app.use(logger)로 글로벌에 미들웨어 morgan을 박아줌
- 특정 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