http://localhost/?id=HTML 에서
id=HTML 부분이 Query string
request.url;
로 들어감 (cmd에서 실행하면 HTML이라고 나옴)방법 : 구글 검색 🔍
nodejs url parse query string
이런 식으로 적으면 찾을 수 있음 (parse : 분석한다)
참고한 사이트 : 139번
var queryData = url.parse(request.url, true).query;
=> request.url을 누르면, querydata가 나옴
// user told us their name in the GET request, ex: http://host:8000/?name=Tom
response.end('Hello ' + queryData.name + '\n');
=> 그 queryData에 .name을 하면 querystring에서 name의 값이 나옴
우리가 쓰고 있는 url 변수가 있으므로 이름이 중복되지 않도록 원래 있던 변수를 _url
로 이름 변경
var queryData = url.parse(_url, true).query;
console.log(queryData.id);
response.end(queryData.id);
이렇게 수정
코드 main.js
var http = require('http');
var fs = require('fs');
var url = require('url');
var app = http.createServer(function(request,response){
var _url = request.url;
var queryData = new URL('http://localhost:3000' + _url).searchParams;
console.log(queryData.get('id'));
if(_url == '/'){
url = '/index.html';
}
if(_url == '/favicon.ico'){
response.writeHead(404);
response.end();
return;
}
response.writeHead(200);
//console.log(__dirname + url);
response.end(queryData.id);
});
app.listen(3000);
결과
'입력된 값을 사용한다'는 것 자체가 이해가 잘 가지 않았음.
=> 그래서 더더욱 지금 뭘하고 있는 건지 몰랐음
=> 그 와중에 cmd 창을 아무리 실행해도, 강의에서 나오는 것처럼 id값이 출력되지 않았음
댓글에서 2021년도 3월부터 강의 속 url.parse
가 deprecate
되서 작동 되지 않다는 것을 알게 됨 => 즉, get을 읽어올 수 없음
따라서 댓글을 남겨주신 chohjender님의 코드를 사용하여 다시 실행
실행시,Null
값이 출력됨
=> 이유? id값을 주지 않았기 때문!
아이디 값을 주려면 주소 창(localhost:3000)에 ?id=' '
을 추가로 입력해야 함
=> 내가 설정한 id값이 cmd창에 출력됨
이러한 과정에서 막판에야 이해하게 됨. 첨에는 답답하고 뭔 소린지 알 수 없었음 영상을 5번은 다시 봤음. id가 이렇게 사용되는구나-를 이해함. 처음에 0인 상태에 비해서는 좀 배워간 느낌