fs 모듈 깔짝 거리고 npm 설치하기

binary·2022년 1월 5일
0

일팔공

목록 보기
18/20
post-thumbnail

Node.js

Node.js의 내장 모듈인 fs 모듈을 맛만 보았다.

fs 모듈

fsfilesystem의 약어이다. 파일 시스템에 접근하는 모듈로, 파일을 생성, 삭제, 읽기, 쓰기 등을 할 수 있다.
내가 맛본 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

npm은 Node Package Manager의 약자로, Node.js로 만들어진 package(module)을 관리해주는 툴이다.

npm 설치하기

Node.js를 설치하면 npm이 내장되어 있으며 따로 설치도 가능하다.

npm 다운받기

npm을 다운 받았다면, npm 설치를 원하는 폴더에 들어가 터미널에 npm -init 입력한다.

npm -v 로 npm 버전을 확인할 수 있다.

npm을 설치했다면, 이제 터미널에 npm install 패키지명 입력만으로 간편하게 여러 패키지들을 설치할 수 있다.

package.json

npm을 설치하면 package.json 파일이 생길 것이다.

npm으로 설치된 패키지와 모듈들의 목록과 버전을 관리하는 파일이다.

뭔지 모르겠지만 부끄러워서 다 가렸다

파일 안으로 들어가면 위처럼 뜰 것이다.

  • name : 프로젝트의 이름
  • version : 프로젝트의 버전
  • description : 프로젝트의 설명
  • main : 패키지의 진입점인 모듈
    예를 들어 프로젝트의 이름이 test.js일 때, require("test") 했을 때 실행되는 파일을 main에 명시한다.
  • scripts : 복잡한 명령을 npm을 이용하여 단순화함
  • author : 제작자
  • keywords : npm에서 패키지를 찾을 때 사용하는 키워드
  • bugs : 에러/ 버그 발생시 알려줄 담당자 정보
  • dependencies, devDependencies : 의존성 모듈

참고하면 좋을 글
https://programmingsummaries.tistory.com/385


0개의 댓글