on
module.exports 에서 사용되는 이 module은 정확히 무엇을 뜻하는 걸까?
module.exports 에서 사용되는 이 module은 정확히 무엇을 뜻하는 걸까?
Photo by Volodymyr Hryshchenko on Unsplash
Node.js에서 module은 ‘필요한 함수들의 집합’을 의미합니다.
module은 크게 2가지로 분류할 수 있는데요.
core module(built-in module) local module
사용하고자 하는 module을 불러오는 방법은 아래와 같습니다.
const test_module = require(“module_name”)
require() 함수는 모듈을 import 할 때 사용하는 함수로 자바스크립트 파일을 읽고 그 파일을 실행시켜 객체를 반환합니다.
이렇게 가져온 모듈을 변수에 할당하여 해당 모듈에서 제공하는 변수 또는 함수 등을 사용할 수 있습니다.
core module
core module(built-in module)은 Node.js에서 기본적으로 제공하는(내제되어 있는) 모듈을 의미합니다.
Node.js에서 기본적으로 제공하는 모듈은 http, os 등 굉장히 다양합니다.
local module
Node.js에서 제공하는 core module 외에 자신이 직접 모듈을 만들어서 애플리케이션에 포함시킬 수도 있습니다.
모듈을 직접 생성할 땐 export 키워드를 사용합니다.
export function myDate() { return Date(); }
위의 코드를 myModule.js 파일에 저장하면(이름은 원하는데로 작성해주시면 됩니다) require() 함수를 사용하여 local module을 불러와 사용할 수 있게 됩니다.
const { myDate } = require(“myModule”);
예시로 사용한 export 문법은 하나씩 내보내는 용도로 사용되는데 이 외에도 여러가지 다양한 방법으로 export 할 수 있는 방법이 있습니다.
// 기본으로 내보내기 export default function myDate() { return Date(); } // 기본으로 내보냈기 때문에 바로 사용할 수 있습니다 const test = require(“myModule”); test(); // 목록으로 내보내기 export { myDate, sample1, sample2, … };// destructuring을 사용해 필요한 부분만 가져와서 사용할 수 있습니다. const samples = require(“myModule”); samples.myDate(); 또는 const { myDate, sample1 } = require(“myModule”); myDate(); // 내보내면서 이름 바꾸기 export { myDate as myFirstDate }; const test = require(“myModule”); test.myFirstDate();
from http://clap-yeon.tistory.com/116 by ccl(A) rewrite - 2021-12-07 11:01:15