라우팅
라우팅 기본 (요청에 따른 매핑)
1 2 3 4 5 6 7 8 9 10 11 12 | var express = require("express"); var app = express(); app.get("/about",function(request,response){ response.send("Welcome to myPage"); }); app.use(function(request,response){ response.status(404).send("page not found"); }); app.listen(3000); |
위 처럼 HTTP요청(/about 에 대한 HTTP GET)에 응답하는 애플리케이션을 만들 수 있다.
이는 /about에 대한 get요청이 아닌 경우 무시한다.
라우트에 대한 매개변수 얻기
1 2 3 4 | app.get("users/:userid",function(request,response){ var userId = parseInt(request.params.userid, 10); //... }) |
만약 사용자 아이디가 숫자고 사용자 프로필페이지를 /users/1, /users/2, users/3 이런식으로 제공한다면,
위와 같이 코딩하여 파라미터(매개변수)를 받을 수 있다.
하나하나 매핑하는 것보다 조금 수월해졌지만 원치않는 /users/hello, /users/book 이 매칭될 수 있다.
따라서 좀더 구체적인 매핑을 해야한다.
* parseInt를 하는 이유는 URL에서 가져올 때 문자열로 가져오기 때문.
정규표현식을 이용한 라우트
1 2 3 4 | app.get(/^\/users\/(\d+)$/,function(req,res){ var userId = parseInt(req.params[0], 10); //... }); |
정규표현식은 공부해보면 조금 까다롭지만 이런식으로 표현이 가능하다.
/users/ 에 숫자가 올 때로 지정했다.
나중에 적용하고 일단은 이런게 가능하다만 알고 넘어가기.
라우트 쿼리 인수 얻기
구글에서 javascript-themed burrito 를 검색하면 URL은
http://www.google.com/search?q=javacript-themed%20burrito
이렇게 나온다. 여기서 search?~~~가 쿼리문자열이다.
1 2 3 4 | app.get("/search",function(req,res){ // req.query.q == "javascript-themed burrito" //... }); |
이렇게 받을 수 있지만, 만약 "?arg=something"으로 방문하면 req.query.arg 로 작성해야하고
"?arg=something&?arg=somethingelse"로 방문하면 req.query.arg는 배열이 된다.
이 문제는 나중에 해결하고 여기서는 쿼리에서 인수를 뽑아쓸 수 있다만 알고 넘어간다.
'Javascript > Node.js' 카테고리의 다른 글
Node.js API 구축 방법 기초 (8) | 2017.09.28 |
---|---|
Node.js 라우터 분할, 파일 라우팅 (2) | 2017.09.27 |
Node.js 미들웨어(Middleware) (0) | 2017.09.26 |
방명록 웹 애플리케이션 만들기 (0) | 2017.09.25 |
Express 기초 (morgan 로깅미들웨어, 라우팅, 요청/응답 확장, 뷰 렌더링) (0) | 2017.09.24 |