[Node.js] URL을 통해 입력된 값 사용하기

mingguriguri·2022년 5월 16일
0

Node.js

목록 보기
7/21

Query string

http://localhost/?id=HTML 에서
id=HTML 부분이 Query string

  • Query string에 따라 다른 정보를 볼 수 있다
  • 오늘 수업에서는 node main.js에서 id값을 알아내는 방법을 찾는 수업
    이 것은 request.url;로 들어감 (cmd에서 실행하면 HTML이라고 나옴)

URL 입력 값 찾아오기

방법 : 구글 검색 🔍

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의 값이 나옴


우리에게 맞게 수정

  1. 우리가 쓰고 있는 url 변수가 있으므로 이름이 중복되지 않도록 원래 있던 변수를 _url로 이름 변경

var queryData = url.parse(_url, true).query;
console.log(queryData.id);
  1. 우리는 name말고 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);

결과


느낀 점

  1. '입력된 값을 사용한다'는 것 자체가 이해가 잘 가지 않았음.
    => 그래서 더더욱 지금 뭘하고 있는 건지 몰랐음
    => 그 와중에 cmd 창을 아무리 실행해도, 강의에서 나오는 것처럼 id값이 출력되지 않았음

  2. 댓글에서 2021년도 3월부터 강의 속 url.parsedeprecate되서 작동 되지 않다는 것을 알게 됨 => 즉, get을 읽어올 수 없음
    따라서 댓글을 남겨주신 chohjender님의 코드를 사용하여 다시 실행

  3. 실행시,Null 값이 출력됨
    => 이유? id값을 주지 않았기 때문!

  4. 아이디 값을 주려면 주소 창(localhost:3000)에 ?id=' '을 추가로 입력해야 함
    => 내가 설정한 id값이 cmd창에 출력됨

  5. 이러한 과정에서 막판에야 이해하게 됨. 첨에는 답답하고 뭔 소린지 알 수 없었음 영상을 5번은 다시 봤음. id가 이렇게 사용되는구나-를 이해함. 처음에 0인 상태에 비해서는 좀 배워간 느낌

profile
To be "irreplaceable"

0개의 댓글