[NodeJS] 모듈 사용하기

seonjeong·2023년 5월 26일

NodeJS

목록 보기
3/19
post-thumbnail

CommonJS

  • NodeJs 환경에서 자바스크립트 모듈을 사용하기 위해 만들어진 모듈 시스템
// import a module
const fs = require('fs');

// provide an export
module.exports = () => "Hello World";

ES6 방식

  • ES6에 도입된 자바스크립트 모듈 시스템
  • 모듈내에 정의된 특정한 부분만을 불러올 수 있다.
  • package.json파일에 type='module'로 세팅 해주어야 사용할 수 있음
    • named export : 내보내는 변수 or 함수의 이름이 그대로 불러낼 때 사용하게 되는 이름이 같음
    • default export : 한 파일에서 변수, 클래스, 함수 등등 중 하나만 내보낼 수 있음
// import a default export
import fs from 'fs';

// Provide a default export
export default () => "Hello World";
 
// Import a named export
import { helloWorld } from "./hello-world.js";
 
// Provide a named export
export const helloWorld = () => "Hello World";

차이점

  • require()는 CommonJS를 사용하는 node.js문이지만 import()는 ES6에서만 사용
  • require()는 파일 (어휘가 아님)에 들어있는 곳에 남아 있으며 import()는 항상 맨 위로 이동
  • require()는 프로그램의 어느 지점에서나 호출 할 수 있지만 import()는 파일의 시작 부분에서만 실행할 수 있다. (그렇지만 import 전용 비동기 문법으로 파일 중간에 모듈 불러오기를 할 수 있다.
  • 하나의 프로그램에서 두 키워드를 동시에 사용할 수 없다
  • 일반적으로 import()는 사용자가 필요한 모듈 부분만 선택하고 로드 할 수 있기 때문에 더 선호된다. 또한 require()보다 성능이 우수하며 메모리를 절약한다.




Reference

https://inpa.tistory.com/entry/NODE-%F0%9F%93%9A-require-%E2%9A%94%EF%B8%8F-import-CommonJs%EC%99%80-ES6-%EC%B0%A8%EC%9D%B4-1
https://velog.io/@dae_eun2/Module-CommonJs-%EC%99%80-Es6-%EC%B0%A8%EC%9D%B4

profile
🦋개발 공부 기록🦋

0개의 댓글