Not found ์˜ค๋ฅ˜ ๊ตฌํ˜„

2023. 8. 22. 23:12ใ†nodejs

์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ •๋ณด์— ๋Œ€ํ•œ ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ Not found ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ๋ฒ•

 

main.js 

var http = require('http');
var fs = require('fs');
//url์ด๋ผ๋Š” ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ผ๋Š” ์ฝ”๋“œ
var url = require('url');

var app = http.createServer(function(request, response) {
  var _url = request.url;
  //์ฝ”๋“œ ์ˆ˜์ •
  var queryData = url.parse(_url, true).query;
  var pathname = url.parse(_url, true).pathname
  var title = queryData.id;

  console.log(url.parse(_url, true).pathname);
  //if๋ฌธ์œผ๋กœ ํŽ˜์ด์ง€ ์ œ์–ด
  if(pathname === '/'){
    //์ฟผ๋ฆฌ์ŠคํŠธ๋ง์— ๋”ฐ๋ผ ํŒŒ์ผ๋ช… ์ƒ์„ฑ                            ๋ณธ๋ฌธ ๋‚ด์šฉ
    fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
      //์›นํŽ˜์ด์ง€์— ๋ณด์—ฌ์ค„ ์ฝ”๋“œ
      var template = `
        <!doctype html>
        <html>
        <head>
          <title>WEB1 - ${title}</title>
          <meta charset="utf-8">
        </head>
        <body>
          <h1><a href="/">WEB</a></h1>
          <ul>
            <li><a href="/?id=HTML">HTML</a></li>
            <li><a href="/?id=CSS">CSS</a></li>
            <li><a href="/?id=JavaScript">JavaScript</a></li>
          </ul>
          <h2>${title}</h2>
          <p>${description}</p>
        </body>
        </html>
      `;
      response.writeHead(200);
      response.end(template);
      //()์•ˆ์— ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ๋„ฃ๋ƒ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ
    })
  }else{
    //ํŒŒ์ผ์ด ์„œ๋ฒ„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ
    response.writeHead(404);
    response.end('Not found');
  }




});
app.listen(3000);

์กด์žฌํ•˜๋Š” ๊ฒฝ๋กœ ์ž…๋ ฅ ์‹œ ์ •์ƒ ์ž‘๋™

์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ๋กœ ์ž…๋ ฅ ์‹œ ์„ค์ •ํ•œ not found ๋œธ!

web ํด๋ฆญํ•˜์—ฌ ํ™ˆ์œผ๋กœ ๊ฐ„ ๊ฒฝ์šฐ ์•„์ง ๊ตฌํ˜„ ๋œ ๋œ ์ฐฝ ๋œธ!

์ด์œ  > ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์ด ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— data ํด๋”์— ๋งŒ๋“  ํŒŒ์ผ ๊ฒฝ๋กœ๋“ค์„ ์ฐพ์•„๊ฐ€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž„!

ํ™ˆ๋ถ€๋ถ„ ์„ค์ • ํ•˜๋Š” ์ฝ”๋“œ

ํ™ˆ์œผ๋กœ ์˜จ ๊ฒฝ์šฐ ('/') ๊ฒฝ๋กœ 

title์€  welcome

description์€ Hello, node.js๋กœ ์„ค์ •ํ•˜๊ธฐ

var http = require('http');
var fs = require('fs');
//url์ด๋ผ๋Š” ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ผ๋Š” ์ฝ”๋“œ
var url = require('url');

var app = http.createServer(function(request, response) {
  var _url = request.url;
  //์ฝ”๋“œ ์ˆ˜์ •
  var queryData = url.parse(_url, true).query;
  var pathname = url.parse(_url, true).pathname


  console.log(url.parse(_url, true).pathname);
  if(pathname === '/'){

    //ํ™ˆ ๋ถ€๋ถ„ ์„ค์ • (์ฟผ๋ฆฌ์ŠคํŠธ๋ง์„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ)
    if(queryData.id === undefined){
        //์›นํŽ˜์ด์ง€์— ๋ณด์—ฌ์ค„ ์ฝ”๋“œ
        var title = 'Welcome';
        var description = 'Hello, node.js';
        var template = `
          <!doctype html>
          <html>
          <head>
            <title>WEB1 - ${title}</title>
            <meta charset="utf-8">
          </head>
          <body>
            <h1><a href="/">WEB</a></h1>
            <ul>
              <li><a href="/?id=HTML">HTML</a></li>
              <li><a href="/?id=CSS">CSS</a></li>
              <li><a href="/?id=JavaScript">JavaScript</a></li>
            </ul>
            <h2>${title}</h2>
            <p>${description}</p>
          </body>
          </html>
        `;
        response.writeHead(200);
        response.end(template);
        //()์•ˆ์— ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ๋„ฃ๋ƒ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ
    } else{
      //์ฟผ๋ฆฌ์ŠคํŠธ๋ง์— ๋”ฐ๋ผ ํŒŒ์ผ๋ช… ์ƒ์„ฑ                            ๋ณธ๋ฌธ ๋‚ด์šฉ                             
      fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
        //์›นํŽ˜์ด์ง€์— ๋ณด์—ฌ์ค„ ์ฝ”๋“œ
        var title = queryData.id;
        var template = `
          <!doctype html>
          <html>
          <head>
            <title>WEB1 - ${title}</title>
            <meta charset="utf-8">
          </head>
          <body>
            <h1><a href="/">WEB</a></h1>
            <ul>
              <li><a href="/?id=HTML">HTML</a></li>
              <li><a href="/?id=CSS">CSS</a></li>
              <li><a href="/?id=JavaScript">JavaScript</a></li>
            </ul>
            <h2>${title}</h2>
            <p>${description}</p>
          </body>
          </html>
        `;
        response.writeHead(200);
        response.end(template);
        //()์•ˆ์— ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ๋„ฃ๋ƒ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ
      });
    }
  }else{
    //ํŒŒ์ผ์ด ์„œ๋ฒ„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ
    response.writeHead(404);
    response.end('Not found');
  }


});
app.listen(3000);