on
Node.js 학습_REPL 사용 / JS파일 실행 / 모듈 생성 /
Node.js 학습_REPL 사용 / JS파일 실행 / 모듈 생성 /
728x90
반응형
# REPL 사용
자바스크립트는 스크립트 언어라 즉석에서 코드를 실행할 수 있다.
REPL이라는 콘솔을 제공 (Read / Evaluate / Print / Loop)
윈도에서는 명령 프롬프트, 맥이나 리눅스에서는 터미널에 node 입력 (cmd 또는 VS Code 파워쉘(Ctrl + `(백틱))에서 node 입력 / node exit의 경우 .exit 입력 또는 Ctrl + C 입력)
repl의 경우 한줄 짜리 코드 실행 등에만 사용 (평소에는 거의 사용하는일 없음)
# JS 파일을 만들어서 실행하기
자바스크립트 파일을 만들어 통째로 코드를 실행하는 방법
아무 폴더(디렉터리)에서 helloWorld.js 생성 node [자바스크립트 파일 경로]로 실행 실행 결괏값이 출력됨
VS Code 파워쉘 -> cmd 변경 (아래와 같이 우측 하단 + 클릭하여 cmd로 변경) (파워쉘 사용의 경우 추후 문제발생 가능성 있다고 함)
# 모듈 생성 (module.exports / require)
모듈 : 특정한 기능을 하는 함수나 변수들의 집합
모듈로 만들면 여러 프로그램에서 재사용 가능
module.exports : 모듈로 생성
const 변수명 = require('경로'); 로 받아서 사용.
객체를 넘겨서 사용할 경우
배열을 넘겨서 사용할 경우
구조분해 할당도 가능하여 아래와 같이 func.js에서 사용 가능
# 기존 const value = require('./var'); console.log(value); # 구조 분해 할당 const { odd, even } = require('./var');
module.exports로 넘겨받은걸 또 module.exports하여 다른쪽으로 넘길수 있음.
const { odd, even } = require('./var'); function checkOddOrEven(number) { if (number % 2 ) { return odd; } else { return even; } } module.exports = { checkOddOrEven, odd, even, };
module.exports는 파일에서 단 한번만 사용해야 함.
var.js
const odd = '홀수입니다.'; const even = '짝수입니다.'; module.exports = {odd, even};
func.js
const { odd, even } = require('./var'); function checkOddOrEven(number) { if (number % 2 ) { return odd; } else { return even; } } module.exports = checkOddOrEven;
index.js
const { odd, even } = require('./var'); // 구조분해 할당 시 속성명, 변수명 동일하게 해야 됨 const checkNumber = require('./func'); // 변수명은 임의로 설정 가능 function checkStringOddOrEven(str) { if (str.length % 2) { return odd; } else { return even; } } console.log(checkNumber(10)); console.log(checkStringOddOrEven('hello'));
ES2015 모듈_자바스크립트 자체 모듈 시스템 문법이 생김. 아직 노드에서의 지원은 완벽하지 않음. mjs 확장자를 사용해야 함. 크게는 require 대신 import / module.exports 대신 export default를 쓰는 것으로 바뀜
func.mjs
import { odd, even } from './var'; function checkOddOrEven(num) { if (num % 2 ) { return odd; } else { return even; } } export default checkOddOrEven;
728x90
반응형
from http://dlagusgh1.tistory.com/832 by ccl(A) rewrite - 2021-10-02 16:01:40