본문으로 바로가기

require

category Node.js 2020. 10. 29. 13:11

Node에서는 모듈을 불러올 때 require 함수를 사용해서 불러온다

require함수는 인자로 가져올 모듈의 경로를 적어주면된다

위 정보만 가지고 foo.js에서 bar.js를 모듈로 가져오는 연습을 해보자

//bar.js

const a = 'this is bar';
const b = 'b in bar';
// foo.js

const bar = require('./bar.js');

console.log(bar.a);
console.log(bar.b);

둘은 같은 디렉토리에 저장되어있다

이를 실행하면 어떻게 될까?

예상대로라면 bar에서 정의한 a와 b가 모두 출력되어야하지만 그렇게 작동하지 않는다

왜 일까? 이를 이해하기 위해서는 require의 작동 방식을 알아봐야하는데 대충 알아듣기 쉽게 설명하면

require함수는 인자로 받아온 파일을 읽어서 module.exports에 정보를 담은 뒤 그를 반환하는데

exports에 아무 정보도 담기지 않았기 때문에 undefined가 출력되는 것

이를 해결해주기위해서는 알아보았듯이 모듈에서 exports에 정보를 담아주면된다

//bar.js

const a = 'this is bar';
const b = 'b in bar';

exports.a = a;
exports.b = b;

'Node.js' 카테고리의 다른 글

파일 읽기  (0) 2020.12.15
웹 서버 실행  (0) 2020.12.14