반응형
URL 구성요소
ex) http://localhost:3000/?name=kimcoder&age=23
- http : protocol, 통신규약
- localhost : host(domain)
- :3000 : 포트넘버, 생략시 80번
- ?name=kimcoder&age=23 : query string, 서버에 전달되는 데이터이다. '?'으로 시작하며 '&'를 경계로 변수명=값 형태로 들어오게 되는데, 이 쿼리 스트링은 name,age 라는 2개의 변수가 각각 kimcoder, 23이라는 값을 가지고 온 것이다.
var http = require('http');
var fs = require('fs');
var url = require('url');
var app = http.createServer(function(request,response){
var _url = request.url;
console.log(url);
console.log(_url);
var queryData = url.parse(_url,true).query;
console.log(queryData);
console.log(queryData.name);
/*if(_url == '/'){
_url = '/index.html';
}
if(_url == '/favicon.ico'){
response.writeHead(404); //파일을 찾을 수 없을 때
response.end();
return;
} */
response.writeHead(200); //파일을 찾았을 때
response.end("Hello!!!");
});
app.listen(3000);
여기서 중요한 것은 서버 측으로 들어온 query string의 데이터들을 추출하는 방법이다.
require 함수는 외부 모듈을 가져오게 해주고, createServer 함수는 웹 객체를 생성해준다.
위에 복잡하게 나와있는 cmd 내용들은 아래 소스코드의 url, _url, queryData, queryData.name 이 각각 어떤 값을 가지는지 알아보기 위해 명령프롬포트에 출력시켜본 것이다.
_url(request.url) 에는 query string 정보가,
queryData에는 변수명:값 쌍들로 이루어진 객체가,
queryData.name 에는 queryData의 name값이 온다.
(queryData 부가 설명)
url.parse(_url,true).query : query string을 매개변수로 받고 url 외부 모듈에 대해 파싱함으로써, 변수명:값 쌍들로 이루어진 객체를 반환해주는 역할을 한다. url객체에서 query라는 이름의 key가 있고 이 value값이 반환할 객체이다.
cmd의 마지막줄에 출력된 'kimcoder' 이 queryData.name에 해당 하는 값이다.
이로써, 서버측으로 들어온 query string의 변수 값 추출에 성공하였다.
반응형
'Node.js > Node.js Basic' 카테고리의 다른 글
[Node.js] 객체를 파일 단위로 관리하기 (0) | 2020.10.19 |
---|---|
[Node.js] 파일 삭제 (0) | 2020.10.15 |
[Node.js] 파일생성/파일명변경, redirection (0) | 2020.10.14 |
[Node.js] URL의 query string 추출 (POST방식) (0) | 2020.10.13 |
[Node.js] 파일 조회/읽기/parse (File path 간단 설명) (0) | 2020.10.06 |
댓글