NodeJS - process객체와 fs모듈

기본 명령어부터 시작

Posted by Yan on January 18, 2021

Our First Brush With Node

git bash에서 node 실습하기. 커맨드 창에 node를 적으면 node.js가 실행된다

  • .help : 여러가지 명령어 목록을 보여준다
  • .exit : node에서 나가기

터미널 명령어

  • mkdir 폴더명 : make directory
  • touch 파일명 : 파일 만들기
  • node 파일명 : 폴더 실행하기 (console창에 나올 내용이 커맨드에 나타난다!) 파일명이 아닌 경로를 포함해도 가능.
  • ls : list segments 이 폴더 안에 어떤 파일이 있나요?에 대한 대답
  • pwd : print working directory 현재 작업중인 디렉터리 이름을 알려줘
  • flag : -p -D -A 이렇게 생긴 것들을 flag라고 부른다
  • rmdir 폴더명 : 폴더 제거하기
  • rm : remove

Node REPL

Read Eval Print Loop

윈도우 커맨드 처럼 사용자가 커맨드를 입력하면 시스템이 값을 반환하는 환경 연산자, 변수 사용 등등이 가능하다

  • Read : 유저의 값을 받아서 Javascript 데이터 구조로 메모리에 저장
  • Eval : 데이터를 처리 Evaluate
  • Print : 결과값을 출력
  • Loop : Read, Eval, Print를 유저가 종료(ctrl+c 두번 혹은 ctrl+d)할 때까지 반복

Node의 process객체

  • global scope
  • 프로그램과 관련된 정보를 나타내는 객체
  • javascript에는 없고 Node.js에만 있다
  1. process.cwd() : current working directory를 알려준다
  2. process.argv

    • 배열을 반환하는데, 첫 번째 값은 process.execPath(절대적인 pathname ‘/usr/local/bin/node’), 두 번째 값은 파일이 실행되는 위치
    1
    
    console.log(process.argv);
    
    • 인자를 전달받기 (커맨드 라인에서 js파일로) greeter.js
    1
    2
    3
    4
    
    const args = process.argv.slice(3);
    for (let arg of args) {
      console.log(`Hi there, ${arg}`);
    }
    

    node + 파일명 + 인자

    1
    2
    3
    4
    5
    
    node greeter.js colt rusty tammy
    
    Hi there, colt
    Hi there, rusty
    Hi there, tammy
    

Node의 fs모듈

  • File System 파일 처리와 관련된 작업을 수행
  • 동기/ 비동기적 방식이 있다.

  • 동기적 Synchronous 방식 : 파일을 읽으면서 다른 작업을 동시에 할 수 없음
  • 비동기적 Asynchronous 방식 : 파일을 읽으면서 다른 작업 동시에 수행 가능. 파일을 성공적으로 읽으면 callback으로 전달한 함수가 매개변수로 호출됨. 마지막 인수는 항상 수행완료시 호출할 callback 함수

모듈을 사용할 때는 항상 require로 불러와야 한다.

1
const fs = require("fs");
예제
  1. mkdirSync사용하기
1
2
3
4
5
6
7
8
9
10
11
const fs = require('fs');
fs.mkdir('Dogs', { recursive: true }, (err) => {
    console.log("IN THE CALLBACK!")
    if (err) throw err;
});
console.log("I COME AFTER MKDIR IN THE FILE!");
fs.mkdirSync('Cats');

I COME AFTER MKDIR IN THE FILE!
Cats파일 생성
IN THE CALLBACK
  1. 폴더 안에 파일 한번에 만들기 app.js
1
2
3
4
5
6
7
8
const fs = require("fs");
const folderName = process.argv[2] || "Project";
//실행 시 node app.js chicken과 같이 폴더명이 있을 경우 process.argv[2]=chicken. 없을 경우 default값으로 Project라는 이름의 폴더 생성
fs.mkdirSync(folderName);
fs.writeFileSync(`${folderName}/index.html`);
fs.writeFileSync(`${folderName}/app.js`);
fs.writeFileSync(`${folderName}/style.css`);
//폴더 안에 세 파일 생성됨

도움이 된 자료