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); // 객체 형식으로 출력
존재하지 않는 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를 시전해줍니다.
여기서 알 수 있듯이 url모듈에는 url의 모든 정보가 객체로 담겨 있기 때문에
접속한 url에 따라 해당하는 동적 웹페이지를 띄워줄 수 있다.