Node.js 웹 404
Node.js 웹 404

 

 

Node.js - Not Found 404

 

Node.js로 404 Not Found Error를 표시하는 방법으로 url모듈을 사용하는 방법이 있습니다.

url 모듈은 url의 정보를 객체로 가져와서 분석(parse)하거나, url 객체를 출력할 수 있는 문자열로 바꿔주는 기능을 수행합니다.

 

url.parse(urlStr, [parseQueryString], [slashesDenoteHost])

 

 

[parseQueryString]

 

 - true : url 객체의 query 속성을 객체 형식으로 가져옴

 - false : url 객체의 query 속성을 문자열 형식으로 가져옴 (주소 형식 그대로)

 

 

 

var url = require('url');
var _url = url.parse('http://localhost:3000/strangeURL.html', true); // <-
 
console.log(_url); // 객체 형식으로 출력

 

 

terminal
Terminal

 

존재하지 않는 url을 넣어 출력했을때 나온 결과입니다. 'pathname' 은 '/' 라던지 루트 경로가 출력되어야 하지만 파일이 존재하지 않기 때문에 자기 자신이 루트 경로가 되어 출력됐습니다.

 

즉, 존재하지 않는 파일의 웹 주소를 입력하여 접속했때는 404 Not Found 에러를 표시해줍니다. 기존의 루트 경로인 pathname을 확인하고 조건문으로 구별해줍니다.

 

 

  var pathname = url.parse(_url, true).pathname; 
 
   if(pathname === '/'){
  //정상 접속
   }
   else{
   	response.writeHead(404);
        response.end('Not Found');
   }

 

 

pathname 이 루트 경로로 접속하지 않았다면 404 NotFound를 시전해줍니다.

 

 

result
결과

 

여기서 알 수 있듯이 url모듈에는 url의 모든 정보가 객체로 담겨 있기 때문에

접속한 url에 따라 해당하는 동적 웹페이지를 띄워줄 수 있다. 

 

 

Nodejs 파일 목록 알아내기

파일 목록 알아내기 var folder = './data'; var fs = require('fs') fs.readdir(folder, function(error, filelist){ console.log(filelist); }) fs.readdir 을 사용해 배열로 파일 목록을 불러와 사용

juni-official.tistory.com