1. module.exports
node에서 module에 뭐가 들어 있는지 console.log로 확인해보면
다음과 같은 속성들이 여럿 나온다.
Module {
id: '.',
exports: {},
parent: null,
...
}
이 중 exports를 보면 node로 작성된 자바스크립트 언어에서 흔히 보이는
module.exports 이하가 뭘 의미하는지 파악할 수 있다.
하나의 파일 안에서만 유효한 함수나 변수를 module.exports 객체에 담아
다른 파일에서 참조할 수 있게 하는 것이다.
function func() {
}
module.exports.func = func;
위에서는 func라는 함수를 exports 객체에 func라는 이름으로 담는다.
아래처럼 되는 것과 같다.
Module {
id: '.',
exports: {
func: func 함수
},
parent: null,
...
}
하나의 함수만 exports에 담을 경우
exports에 직접 넣을 수도 있다.
function func() {
}
module.exports = func;
Module {
id: '.',
exports: func 함수,
parent: null,
...
}
2. require
exports에 어떻게 넣었느냐에 따라서
다른 파일에서 불러올 때의 형태도 달라진다.
const func = require('./func');
func.func();
// 또는 func();
require로 func.js 파일을 불러오면
func.js의 Module.exports에 담겨있는
객체나 메소드를 사용할 수 있다.
require는 built-in 모듈을 불러올 때도 사용한다.
const http = require('http');
3. Module Wrapper Function
modue.exports와 require를 쓸 수 있는 이유는
node.js의 파일들은 실행될 때 기본적으로 다음의 함수가 감싼 것처럼 처리되기 때문이다.
(function (exports, require, module, __filename, __dirname) {
// 파일 내용
}
인자로 module.exports와 require를 쓸 수 있다.
exports는 module.exports를 가리킨다.
module.exports를 간단히 쓰기 위해서 마련된 것 같다.
'Node.js > 일반' 카테고리의 다른 글
node.js에서 크롬 디버거와 콘솔 사용하기 (0) | 2020.04.24 |
---|---|
node.js의 http 모듈 기본 사용법 (0) | 2020.04.18 |
node.js 이벤트 이미터 기본 사용법 (0) | 2020.04.18 |
프로젝트 폴더에 npm 설정하는 방법, npm 시작하는 방법 (0) | 2020.04.08 |
node.js에서 텍스트 파일 불러오는 방법 (0) | 2020.04.04 |