๊ด€๋ฆฌ ๋ฉ”๋‰ด

C-log

๐Ÿ“—Nodejs : section05 - require๊ณผ createServer ๋ณธ๋ฌธ

๐Ÿ“—Nodejs/โšกver.0

๐Ÿ“—Nodejs : section05 - require๊ณผ createServer

4:Bee 2024. 1. 8. 18:58
728x90

* section01๋ถ€ํ„ฐ setcion04๊นŒ์ง€์˜ ์ˆ˜์—…์€ OT์™€ Nodejs์„ค์น˜ ๋ฐฉ๋ฒ•์„ ๊ฐ•์˜ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ํฌ์ŠคํŒ… ํ•˜์ง€ ์•Š์•„ section05๋ถ€ํ„ฐ ํฌ์ŠคํŒ…์„ ์‹œ์ž‘ํ•œ๋‹ค. ์ดํ›„์—๋„ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๋“ค์„ ์„ค๋ช…ํ•˜๋Š” ๊ฒฝ์šฐ ๊ณผ๊ฐํ•˜๊ฒŒ ์Šคํ‚ตํ•˜๊ณ  ํ•„์š”ํ•œ ๋‚ด์šฉ๋“ค๋งŒ์„ ๋‹ด์•„์„œ ํฌ์ŠคํŒ… ํ•  ๊ฒƒ์ด๋‹ค.

์ด๋ฒˆ ์ˆ˜์—…์˜ nodejs index.js ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

- index.js

let http = require('http');//HTTP ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ†ต์‹ ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ
let fs = require('fs');//ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•˜์—ฌ ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” ๋ชจ๋“ˆ
 
let app = http.createServer(function (request, response) {
 
  let url = request.url;
  if (request.url == '/') {
    url = '/index.html';
  }
  //?? ์š”์ฒญ๋œ URL์„ ํ™•์ธํ•˜๊ณ , ๋ฃจํŠธ ๊ฒฝ๋กœ('/')๋กœ์˜ ์š”์ฒญ์ธ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ index.htmlํŒŒ์ผ์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  if (request.url == '/favicon.ico') {
    return response.writeHead(404);
  }//favicon.ico ํŒŒ์ผ์— ๋Œ€ํ•œ ์š”์ฒญ์ด ๋“ค์–ด์˜จ ๊ฒฝ์šฐ 404 ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

  response.writeHead(200);
  console.log(__dirname + url)
  response.end(fs.readFileSync(__dirname + url));
  //HTTP ์ƒํƒœ ์ฝ”๋“œ 200์œผ๋กœ ์‘๋‹ต ํ—ค๋”๋ฅผ ์„ค์ •ํ•˜๊ณ , ์š”์ฒญ๋œ ํŒŒ์ผ์„ ์ฝ์–ด ๋“ค์—ฌ ์‘๋‹ต ๋ณธ๋ฌธ์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
});
app.listen(3000); //์„œ๋ฒ„๋ฅผ ํŠน์ • ํฌํŠธ(์—ฌ๊ธฐ์„œ๋Š” 3000)์—์„œ ๋ฆฌ์Šค๋‹ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
 
D:\****\1_Js\Nodejs\section5/index.html
D:\****\1_Js\Nodejs\section5/1.html
D:\****\1_Js\Nodejs\section5/coding.jpg
D:\****\1_Js\Nodejs\section5/2.html
D:\****\1_Js\Nodejs\section5/3.html

console.log(__dirmame+url)์„ ํ†ตํ•ด์„œ ํ™•์ธ๋˜๋Š” ๊ฐ’์€ ์œ„์— ๋งˆ์ง€๋ง‰ ๊ฒฐ๊ณผ ๋ถ€๋ถ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด url๋กœ ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ,์ ‘๊ทผํ•  ๋•Œ ๋งˆ๋‹ค js๋ฅผ ํ†ตํ•ด์„œ url์„ ์ฝ์„ ๊ฒƒ์ด๋‹ค.

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ์•Œ ์ˆ˜ ์žˆ๋‹ค. request.url์ด '/'์ด๋ ‡๊ฒŒ ๋น„์–ด ์žˆ๋‹ค๋ฉด url์ •๋ณด๋Š” index.html์˜ html์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ง์ ‘ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ console.log๋กœ ํ™•์ธํ•ด๋ณด์ž.

 
  let url = request.url;
  console.log(url)
  if (request.url == '/') {
    url = '/index.html';
    console.log(url)
  }
 
/favicon.ico
/index.html
/1.html
/coding.jpg
/2.html
/favicon.ico
/favicon.ico
/favicon.ico
 

์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ํ•ด๋‹น ๊ฐ’์ด url๊ณผ๋„ ์—ฐ๊ฒฐ์ด ๋˜์–ด์žˆ์ง€๋งŒ index.html์˜ aํƒœ๊ทธ์™€๋„ ์—ฐ๊ฒฐ์ด ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜๋Š” index.html์ฝ”๋“œ์ด๋‹ค.

- index.html

    ...
<head>
  <title>WEB1 - Welcome</title>
  <meta charset="utf-8">
</head>
<body>
  <h1><a href="index.html">WEB</a></h1>
  <ol>
    <li><a href="1.html">HTML</a></li>
    <li><a href="2.html">CSS</a></li>
    <li><a href="3.html">JavaScript</a></li>
  </ol>
    ...

๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค์‹œ ๋Œ์•„๊ฐ€์„œ url์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” let url ๋ณ€์ˆ˜์— ๋‹ด๊ฒจ์žˆ๋Š” request๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ let app๋ณ€์ˆ˜๊ฐ€ ์ค‘์š”ํ•˜๊ณ  ๊ทธ๊ฒƒ ์•ˆ์— ๋‹ด๊ฒจ์žˆ๋Š” createServer()ํ•จ์ˆ˜๊ฐ€ ์™ธ๋ถ€ nodejs๋กœ ๋ถ€ํ„ฐ ๋ชจ๋“ˆ http๋ฅผ ์š”์ฒญ๋ฐ›์•„ ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, let http์— ๋‹ด๊ธด require('http')์™€  http.createSever()๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์—ผ๋‘ ํ•ด๋‘๊ณ  ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ๊ฐ„์ด๋ผ๊ณ  ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๊ฒƒ์ด๋‹ค. 

728x90
Comments