Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- react
- 쿼리
- JavaScript
- jsx
- android
- egov
- SQL
- node.js
- vscode
- Java
- MVC
- c:forEach
- c:choose
- 동적쿼리
- mybatis
- MySQL
- RequestMethod.POST
- jQuery
- C#크롤링
- 서드파티모듈
- fullcalendar
- iBATIS
- Spring
- 국제화
- 콜백
- AndroidStudio
- HTTP
- Callback
- JSTL
- NPM
Archives
- Today
- Total
Today Yewon Learned
[Node.js] 라우팅(Routing) 본문
const http = require('http');
let server = http.createServer(function(request, response) {
response.end('<h1>Hello world</h1>');
});
server.listen(3000);
이와 같이 Node.js 에서 간단한 서버 프로그램 실행 후,
주소창에 127.0.0.1:3000 으로 접속시, Hello World가 출력되는 것을 확인하였다.
그럼, 주소를 127.0.0.1:3000/users 로 바꿔보자.
똑같은 결과다.
다시 한번, 주소를 127.0.0.1:3000/codeit/item?id=3으로 바꿔보자.
여전히 똑같은 결과로, 이 상태로는 제대로 된 서버 프로그램을 만들기 힘들 것이다.
그러면 어떻게? URL에 따라 알맞는 응답을 주도록 해야한다.
request.url 이용
const http = require('http');
let server = http.createServer(function(request, response) {
console.log(request.url);//클라이언트가 요청한 URL 정보 알기 - request 속성에 URL 정보 담겨옴
});
server.listen(3000);
주소창에 127.0.0.1/3000/programming/topics를 치면,
Node.js 의 teminal 창에서 입력한 주소 결과를 알 수 있다.
각각 URL에 따라 다른 라우팅 해보기
const http = require("http");
users = ['Tom', 'Andy', 'Jessica', 'Paul'];
let server = http.createServer(function (request, response){
if(request.url === '/'){ //호스트 부분만 남겨도 '/' 자동으로 붙여줌 (중요) - main 페이지 url
response.end('<h1>Welcome!<h1>');
}else if(request.url === '/users'){ //회원목록 요청 url
response.end('<h1>' + users + '</h1>');
}else{ //준비되지 않은 url
response.end('<h1>Page Not Available</h1>');
}
});
server.listen(3000);
HTTP 모듈로 라우팅 할 때의 불편함
const http = require("http");
const { REPL_MODE_STRICT } = require("repl");
users = ['Tom', 'Andy', 'Jessica', 'Paul'];
let server = http.createServer(function (request, response){
if(request.url === '/'){
response.end('<h1>Welcome!</h1>');
}else if(request.url === '/users'){
response.end('<h1>' + users + '</h1>');
}else if(request.url.split('/')[1] === 'users'){
//url : /users/1, /users/2, ...
let userIdx = request.url.split('/')[2];
let userName = users[userIdx -1];
response.end('<h1>' + userName + '</h1>');
}else{
response.end('<h1>Page Not Available</h1>');
}
});
server.listen(3000);
*split() - 문자열을 배열로 변환하는 메소드
EX) REPL모드 접근
결과)
'javascript > Node.js' 카테고리의 다른 글
[Node.js] 서드파티 모듈 (0) | 2021.12.15 |
---|---|
[Node.js] express 모듈을 이용한 라우팅 (0) | 2021.12.15 |
[Node.js] URL , Domain Name (0) | 2021.12.07 |
[Node.js] 초간단 웹 서버 제작 (0) | 2021.12.07 |
[Node.js] 서버와 클라이언트 (0) | 2021.12.04 |
Comments