오늘은 Nodejs에서 사용되는 import 을 정리해 보도록 하겠습니다.
그중에서도 가장 오랫동안 사용되어온 CommonJS의 모듈화 방식과,
최신의 ES방식에 대해서 정리해 보도록 하겠습니다.
먼저 CommonJS의 방법을 정리해 보도록 하겠습니다.
1. CommonJS
1-1. export
예를 들어, 프로젝트의 폴더에서 /util 폴더에 아래와 같이 코딩하고,
hello.js 파일을 만들었다고 가정해 보겠습니다.
export 할 변수명이나 함수명을 module.exports = 다음에 넣어주면 됩니다.
function hello(name) {
return `Hello World, I'm, $name`;
}
module.exports = hello;
1-2. import
이제 import 해 보겠습니다.
require()를 사용하는데요.
아래와 같이 안에 해당 폴더의 위치와 파일명을 적어 줍니다.
const hello = require('./utils/hello');
const sayHello = hello('김군');
console.log(sayHello);
매우 심플하여 사용하기도 쉽습니다.
2. ES 방식
2-1. type 설정
NodeJS에서,
ES(Echma Script)방식을 따를 때는,
package.json 에 아래와 같이,
type을 명시해 주어야 합니다.
"module" 이라고 해 주기만 하면 됩니다.
2-2. export
hello.js 파일안에 아래와 같이 앞에 키워드 export 만 넣어주면 끝납니다.
commonJS방식에서는 "module.exports = hello;"를 넣어주어야 했었는데요.
이제는 그것도 필요하지 않습니다.
export function hello(name) {
return `Hello World, I'm, $name`;
}
2-3. import
import 할때는 주의가 필요한데요.
가져오는 hello 함수를 { }으로 감싸주고요.
import 할 파일의 위치를 작성해주는 것은 같은데,
뒤에 확장자 명까지 꼭 적어주어야 합니다.
import { hello } from './utils/hello.js';
const sayHello = hello('김군');
console.log(sayHello);
3. 여러개의 함수를 export 하고 import 할경우
3-1. commonJS 방식
아래와 같이 여러개의 함수를 { }으로 감싸고, 콤마를 이용해 구분해 주면 됩니다.
function add(a, b) {
return a + b;
}
function minus(a, b) {
return a * b;
}
module.exports = { add, minus };
import 할 때는 아래와 같이 { }에 import 할 함수들을 넣어주기만 하면 됩니다.
const { add, minus } = require('./util/math');
const sum = add(7, 3);
const product = minus(7, 1);
3-2. ES방식
그럼 여러개의 하수를 export 하고 import 할 경우는 어떻게 될까요?
먼저 import는 다음과 같이 합니다.
export function add(a, b) {
return a + b;
}
export function minus(a, b) {
return a - b;
}
다음으로 import 할 때는 아래와 같이 해주기만 하면 됩니다.
import { add, minus } from './util/math.js';
const add = add(6, 2);
const minus = minus(3, 1);
아래와 같이 여러개를 import 할 수도 있습니다.
import * as utils from './util/math.js';
const sum = utils.add(6, 2);
const product = utils.minus(3, 1);
이상으로 CommonJS와 ES 방식으로 NodeJS에서 파일을 import 하고 Export 하는 방식에 대해서 정리해 보았습니다.
'NodeJS, NPM, Koa > NodeJS, NPM, Express' 카테고리의 다른 글
서버가 되는 맥컴퓨터의 IP Address 보기 # Mac (0) | 2023.04.18 |
---|---|
NodeJS 에서 CSV 읽어들이기 # JS (0) | 2022.05.05 |
Pug (구 Jade) 설치 및 기본 문법들 정리 # NodeJS (0) | 2021.11.25 |
NPM 의 package.json 을 이용한 효율적 설치 방법 #NodeJS (0) | 2020.03.21 |
댓글