1 minute read

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’), 두 번째 값은 파일이 실행되는 위치
    console.log(process.argv);
    
    • 인자를 전달받기 (커맨드 라인에서 js파일로) greeter.js
    const args = process.argv.slice(3);
    for (let arg of args) {
      console.log(`Hi there, ${arg}`);
    }
    

    node + 파일명 + 인자

    node greeter.js colt rusty tammy
    
    Hi there, colt
    Hi there, rusty
    Hi there, tammy
    

Node의 fs모듈

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

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

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

const fs = require("fs");
예제
  1. mkdirSync사용하기
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
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`);
//폴더 안에 세 파일 생성됨

도움이 된 자료

Comments