Node.js의 내장 모듈인 fs 모듈을 맛만 보았다.
fs는 filesystem의 약어이다. 파일 시스템에 접근하는 모듈로, 파일을 생성, 삭제, 읽기, 쓰기 등을 할 수 있다.
내가 맛본 fs 모듈의 메서드는 readFile 로, 파일을 읽는 메서드이다.
const fs = require("fs");
fs.readFile("파일 경로", (err, data) => {
.
.
.
});
fs 모듈을 불러와 파일 경로를 입력하면 파일을 읽을 수 있다.
<!-- test.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<h3>테스트 파일</h3>
<hr />
<p>연습입니다.</p>
</body>
</html>
예제를 조금 더 편하게 진행하기 위해서 test.html 파일을 만들었다.
const http = require("http");
http
.createServer((req, res) => {
// fs는 File System , 라이브러리
const fs = require("fs");
fs.readFile("week4/test.html", (err, data) => {
if (!err) {
res.writeHead(200, { "Content-Type": "text/html" });
return res.end(data);
}
console.log(err);
res.writeHead(500, { "Content-Type": "text/plain, charset=utf-8" });
res.end("Server error");
});
})
.listen(3000, () => {
console.log("server on : 3000 port");
});
err
가 일어나지 않는다면, data인 html 파일을 보여주고, err
가 난다면, Server error가 뜨도록 했다.
여기서 http 상태코드 500은 서버에 오류가 발생하여 요청을 수행할 수 없다 (내부 서버 오류) 라는 의미이다.
| err
가 나지 않았을 때
| err
가 났을 때
파일을 찾지 못해 err
가 나면 위처럼 뜨게 된다.
const http = require("http");
// fs는 File System , 라이브러리
const fs = require("fs");
http
.createServer((req, res) => {
let { url } = req;
fs.readFile("week4/test2.html", (err, data) => {
console.log(err);
if (!err) {
res.writeHead(200, { "Content-Type": "text/html" });
return res.end(data);
} else if (err && err["errno"] === -2) {
res.writeHead(404, { "Content-Type": "text/plain, charset=utf-8" });
return res.end("Not found file");
}
console.log(err);
res.writeHead(500, { "Content-Type": "text/plain, charset=utf-8" });
res.end("Server error");
});
})
.listen(3000, () => {
console.log("server on : 3000 port");
});
상태코드와 errno: -2을 조금 더 활용하여 if문을 추가해보았다.
500은 서버 오류라는 뜻이고, 404는 서버가 요청한 페이지를 찾을 수 없다는 뜻이다.
file을 찾지 못했다는 건 페이지를 찾지 못한 것과 같으니까 상태코드를 404로 바꾸었다.
위의 Error 이미지를 확인해보면 파일을 못찾았을 때의 errno가 -2인 것을 알 수 있다. 그래서 errno가 -2면 Not found file 이 뜨도록 했다.
test2.html
파일은 없기 때문에 errno === -2 라는 조건식에 걸려 Not found file 이라는 문자열을 반환한다.
아닌 경우는 이렇게 test.html
파일이 뜬다.
npm은 Node Package Manager의 약자로, Node.js로 만들어진 package(module)을 관리해주는 툴이다.
Node.js를 설치하면 npm이 내장되어 있으며 따로 설치도 가능하다.
npm을 다운 받았다면, npm 설치를 원하는 폴더에 들어가 터미널에 npm -init
입력한다.
npm -v
로 npm 버전을 확인할 수 있다.
npm을 설치했다면, 이제 터미널에 npm install 패키지명
입력만으로 간편하게 여러 패키지들을 설치할 수 있다.
npm을 설치하면 package.json
파일이 생길 것이다.
npm으로 설치된 패키지와 모듈들의 목록과 버전을 관리하는 파일이다.
뭔지 모르겠지만 부끄러워서 다 가렸다
파일 안으로 들어가면 위처럼 뜰 것이다.