๐Ÿ“—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