728x90
728x90
🖥️ Not Found
Not Found는 404 라는 status code이다. Not Found(404)에러는 "웹페이지를 표시 할 수 없다" 라는 뜻이다.
그렇다면 Not Found라는 페이지가 나오는 이유를 살펴보자
- 부적절 한 URL로 판단되어 사전 차단
- 정확하지 않은 주소를 입력
- 사용이 제한된 URL
- 유료서비스 기간 만료
여러가지 이유들로 인해 Not Found(404) 페이지가 뜨는 것이다. 그래서 우리가 웹페이지를 개발할 때는 Not Found(404) 페이지도 개발을 해야 한다.
Node.js 에선 어떻게 할 수 있는지 확인해 보자.
var http = require('http');
var fs = require('fs');//fs module (= File System module) 이란, 파일 처리와 관련된 전반적인 작업을 하는 모듈을 말한다.
var url = require('url');
var app = http.createServer(function (request, response) {
var _url = request.url;
var queryData = url.parse(_url, true).query; //query string을 불러 온다.
var pathname = url.parse(_url, true).pathname;
var title = queryData.id;
// not found
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>
<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.writeHead(200);
response.end(template);//이 코드가 사용자가 실행하고 싶은 파일을 넣는다.
//javascript를 통해서 우리가 읽어드려야 하는 파일을 만든 것이다.
// 사용자가 생성한 파일을 전송한다.
})
} else {
response.writeHead(404);
response.end('Not found');
}
});
app.listen(3000); //포트 번호를 3000번으로 지정
node.js 에서 not found 페이지를 만드는 코드이다.
먼저 pathname을 알아야 하기 때문에 콘솔창에 띄어 본다.
console.log(url.parse(_url, true));
위 코드와 같이 입력하면 다음과 같은 결과가 출력된다.
여기서 pathname을 찾는 코드를 작성해준다.
var pathname = url.parse(_url, true).pathname;
그리고 조건문을 써서 pathname이 /와 같다면 정상적인 웹페이지를 출력하고 그렇지 않다면 Not found 페이지를 출력하는 것이다.
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>
<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.writeHead(200);
response.end(template);//이 코드가 사용자가 실행하고 싶은 파일을 넣는다.
//javascript를 통해서 우리가 읽어드려야 하는 파일을 만든 것이다.
// 사용자가 생성한 파일을 전송한다.
})
} else {
response.writeHead(404);
response.end('Not found');
}
결과는 다음과 같다.
이제 not found를 원하는대로 디자인 해 사용자에게 보여주면 된다.
Not found 웹페이지 디자인 예시를 몇 개 보자
728x90
'👨💻 node.js' 카테고리의 다른 글
Node.js(express)와 MySQL 연결 (0) | 2024.02.22 |
---|---|
회원인증 방법론 (session-based, JWT, OAuth) (0) | 2024.02.22 |
Query String (2) | 2024.02.20 |
URL의 이해 (4) | 2024.02.19 |
Node.js 설치 (0) | 2024.02.19 |