C-log

📗Nodejs : section10 - URL, query string 본문

📗Nodejs/⚡ver.0

📗Nodejs : section10 - URL, query string

4:Bee 2024. 1. 8. 21:30
728x90

이제 우리는 url의 특정 값들을 자유롭게 가져올 수 있어야한다. 우선 이번 수업 때 기본적으로 사용한 코드는 아래와 같다.

 
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 = url.parse(_url, true).query;
    console.log(queryData.id)
    if (_url == '/') {
        _url = '/index.html';
    }
    if (_url == '/favicon.ico') {
        return response.writeHead(404);
    }
    response.writeHead(200);
    // console.log(__dirname + url);
    response.end(queryData.id);
});
app.listen(3000);
 

이전과는 다르게 우리가 url 모듈을 요청해서 이를 _url변수에 담아 둔다. _url에는 클라이언트가 요청한(url 주소창에 기입한 주소 값) url을 문자열로 담는다. 그리고 url.parse()를 이용해서 url값을 분석하고 필요한 정보를 추출한다. 참고로 우리가 전 시간에 html을 바로 불러올 수 있던 이유는 fs.readFileSync(__dirname + _url)을 사용했기 때문이다. __dirname + _url) 에는 html경로의 위치가 담겨져 있다. 다시 오늘 수업으로 넘어가서 queryData.id의 값을 console.log를 했을 때의 결과 값을 확인해 보자.

우선 해당 localhost의 주소와 queryData.id가 들어갈 query 문자열을 입력해 줘야한다. 'http://localhost:3000/?id='이와 같이 입력을 url에 작성하고 ?id=뒤에 HTML나 CSS 값을 넣으면 console.log(queryData.id)의 결과 값은 HTML CSS가 찍힌다. 

 

728x90
Comments