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

C-log

๐Ÿ“—Nodejs : section13 - readFile ๋ณธ๋ฌธ

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

๐Ÿ“—Nodejs : section13 - readFile

4:Bee 2024. 1. 9. 14:26
728x90

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” CRUD์—์„œ R์— ํ•ด๋‹น๋˜๋Š” ํŒŒ์ผ์„ ์ฝ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ค์›€์€ ์—†์„ ๊ฒƒ์ด๋‹ค. fs์— ์žˆ๋Š” ๋ชจ๋“ˆ์˜ readFileํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. data ํด๋”๋ฅผ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ๊ณณ์— ํŒŒ์ผ์„ ์ฝ์„ ์ •๋ณด๋“ค์„ ์–บ์–ด ์ฃผ๋ฉด ๋œ๋‹ค. ์šฐ์„  ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 
fs.readFile(`data/${queryData.id}`, 'utf8', function (err, description) {
    let template = `
    <!doctype html>
    <html>
    <head>
      <title>WEB1 - ${title}</title>
      <meta charset="utf-8">
    </head>
    <body>
      <h1><a href="/">WEB</a></h1>
      <ol>
        <li><a href="/?id=HTML">HTML</a></li>
        <li><a href="/?id=CSS">CSS</a></li>
        <li><a href="/?id=JavaScript">JavaScript</a></li>
      </ol>
      <h2>${title}</h2>
      <p>${description}</p>
    </body>
    </html>

    `;
    response.end(template);
  })
 

์ฒซ ๋ฒˆ์งธ ์ธ์ž๊ฐ€ ์ฝ์–ด๋“œ๋ฆด ํŒŒ์ผ์˜ ์œ„์น˜์™€ ์ด๋ฆ„์„ ์˜๋ฏธํ•˜๊ณ  ๋‘ ๋ฒˆ์งธ ์ธ์ž๋Š”  utf8์€ ํ•œ๊ธ€๋กœ ๋˜์–ด ์žˆ๋Š” ํŒŒ์ผ์„ ์ฝ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ธ์ž์ด๋‹ค. ์ดํ›„ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ•จ์ˆ˜๋กœ ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ฝœ๋ฐฑํ•จ์ˆ˜๋กœ HTML ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ฒซ ๋ฒˆ์งธ ์ธ์ž์—์„œ ํ…œํ”Œ๋ฆฟ์œผ๋กœ queryData.id๋ฅผ ์ด์šฉํ•ด์„œ url์˜ query string์œผ๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๊ฒฐ์ •ํ•˜๊ณ  ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ ๊ฒƒ์ด๋‹ค. ์ „์ฒด ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 
let http = require('http');
let fs = require('fs');
let url = require('url');

let app = http.createServer(function (request, response) {
  let _url = request.url;
  let queryData = url.parse(_url, true).query;
  let title = queryData.id;
  console.log(queryData.id)
  if (_url == '/') {
    // _url = '/index.html';
    title = 'Welcome';
  }
  if (_url == '/favicon.ico') {
    return response.writeHead(404);
  }
  response.writeHead(200);
  //readFile
  fs.readFile(`data/${queryData.id}`, 'utf8', function (err, description) {
    let template = `
    <!doctype html>
    <html>
    <head>
      <title>WEB1 - ${title}</title>
      <meta charset="utf-8">
    </head>
    <body>
      <h1><a href="/">WEB</a></h1>
      <ol>
        <li><a href="/?id=HTML">HTML</a></li>
        <li><a href="/?id=CSS">CSS</a></li>
        <li><a href="/?id=JavaScript">JavaScript</a></li>
      </ol>
      <h2>${title}</h2>
      <p>${description}</p>
    </body>
    </html>

    `;
    response.end(template);
  })
});
app.listen(3000);
728x90
Comments