모듈이란? 

프로그래밍에서 모듈(module)이라함은 외부에 영향을 받지 않는 독립된, 재사용 가능한 코드들의 묶음입니다. 모듈로 API를 묶어줌에 변수나 함수들의 name space를 보장해주고, 모듈화를 통한 기능적인 코딩이 가능해집니다. NodeJS에서 모듈은 1차적으로 파일로 구분됩니다. 즉, 코드가 작성된 파일이 같은지 다른지에 따라 모듈이 나눠지게 됩니다. 예를 들면, app.js에서 작성한 코드와 some.js에서 작성한 코드는 서로 다른 모듈에 존재하는 것으로 인식하게 됩니다.

 

require / module.exports

> 링크를 참조:  https://m.blog.naver.com/jdub7138/221022257248

 

[NodeJS] require()와 module.exports

모듈이란?프로그래밍에서 모듈(Module)이라함은 외부에 영향을 받지 않는 독립된, 재사용 가능한 코드들의...

blog.naver.com

 

** 내가 정리한 require에 대한 내용 

const *** = require(경로)  // 기본모양

const { *** } = require(경로) // 구조분해할당을 이용

// 

module.exports = *** // 변수, 함수, 객체 다양한 형태로 export가능

exports.*** = // 아래와같은 모양으로 작성해도 무방*.(축약버젼)

 

*exports를 사용할 때는 exports 객체에 프로퍼티를 추가한다.

module.exports를 사용할 때는 module.exports 변수에 아예 새로운 객체를 할당.

 

-> Node.js의 모듈 시스템에서 실제로 export되는 객체는 module.exports이고, exports는 이를 참조하는 변수에 불과하기 때문

(자세한 설명은 링크를 참조: http://happinessoncode.com/2018/05/20/nodejs-exports-and-module-exports/)

 

-> 중요 내용 요약:

1. Node.js에서 익스포트되는 객체는 module.exports이다.

2. module.exports는 빈 오브젝트({})로 초기화 되어있다.

3. exports는 module.exports를 참조하는 변수이다.

 

***설명: 요 이미지가 가장 명쾌하다!

차이점!

 

 

*require 함수를 호출하면서 경로를 지정할 때, 직접적인 파일명을 적어주지 않으면 (=폴더명 까지만 적으면) index.js 혹은 index.node라는 파일이 있는지 확인해서 가져온다. (둘다 없는 경우 오류를 낸다.)

'기록남기기 > Backend' 카테고리의 다른 글

[Axios] 서버요청  (0) 2021.09.08
[Express/미들웨어] cors  (0) 2021.09.08
Sequelize ORM 기본적인 cli사용법 정리  (0) 2021.09.02
환경변수  (0) 2021.08.23
Read, Write, Execution 권한  (0) 2021.08.23

+ Recent posts