CommonJS

katsukichi·2021년 2월 24일
0

CodeStates_IM

목록 보기
8/48

commonJS?

CommonJS는 웹 브라우저 밖의 자바스크립트를 위한 모듈 생태계의 규칙을 설립하기 위한 프로젝트이다

로 정의된다.

일단

모듈사용하기

브라우저와 Node.js에서의 모듈 사용의 차이

브라우저와 다르게 node.js의 특징 중 하나는, 다양한 내장 모듈이 존재한다는것이다.

브라우저는 다른스크립트 파일 불러올때 html에서 <script>태그를 사용했다.

require을 쓰자 (import같은 느낌)

사용하려면

const 모듈이담긴변수 = require("모듈이름")

나의 다른 스크립트를 불러올때

// script1.js
const module2 = require('./script2.js') // ./는 현재 디렉토리입니다.
// script2.js
console.log('this is module 2');

내 스크립트가 다른 파일에서 모듈로 보이려면?

module.exports라는 녀석을 사용하자.

// script1.js
const module2 = require('./script2.js')
console.log(modules2) // 'this is module 2'
// script2.js
module.exports = 'this is module 2'

module.exports 대신에 exports를 사용할수 있다. 일종의 축약형(shortcut)이다.

이러한 모듈노출방법과 불러오는방법을

CommonJS 모듈 시스템 이라고 부른다.

cycles? : 순간 노드js가 멀티쓰레드 인줄 알았다..;;
아니고 일단 기본적으로 require에 대해서 사용해볼만한 예시를 알려준다.

이렇게 실행하면 어떻게되는가 ??

a.js:

console.log('a starting');
exports.done = false;
const b = require('./b.js');
console.log('in a, b.done = %j', b.done);
exports.done = true;
console.log('a done');

b.js:

console.log('b starting');
exports.done = false;
const a = require('./a.js');
console.log('in b, a.done = %j', a.done);
exports.done = true;
console.log('b done');

main.js:

console.log('main starting');
const a = require('./a.js');
const b = require('./b.js');
console.log('in main, a.done = %j, b.done = %j', a.done, b.done);

결과를 충분히 추측해보자

결과보기
$ node main.js
main starting
a starting
b starting
in b, a.done = false
b done
in a, b.done = true
a done
in main, a.done = true, b.done = true

module.exports

commonJS

profile
front-back / end developer / Let's be an adaptable person

0개의 댓글