티스토리 뷰


node.js를 보면서.. 모듈을 로드 하는데..

참.. 다양하게 모듈이 구성되어 있더군요..

이게 뭔가 싶을 정도로....


그래서 유형별로 정리를 해 봤습니다.


people이라는 모듈을 읽어서 say라는 함수를 실행하는 코드 입니다.

test.js

var people = require('./people');                                  
people.say('Hello World');



모듈 #1

people.js

exports.say = function(message) {
    console.log(message);
};


모듈 #2

people.js

var people = module.exports = function(){};
people.say = function(message) {
    console.log(message);
};


모듈 #3

people.js

var people = module.exports = {
    say : function(message) {
        console.log(message);
    }
};


모듈 #4

people.js

module.exports = Object.create({
    say : function(message) {
        console.log(message);
    }
});


참 다양하죠?

이런저런 소스를 보다 보면.. 뭐가 이리 달라 싶더라구요..


이번에는 초기화 값을 줘 가면서 하는 방법입니다.


제가 본 방법은 2가지 정도 방법입니다.


방법 #1

클래스를 사용하듯이 전달하기..


test.js

var People = require('./people');
var people = new People('bread');
people.say('Thank you!');


people.js

module.exports = function(gift) {
    this.gift = gift;
    this.say = function(message) {
            console.log(this.gift);
            console.log(message);
            };
};


방법 #2

변수를 exports로 설정하고, parent로 받기...


test.js

var gift = exports.gift = "bread";                                 
var people = require('./people');                                  
people.say('Thank you!');


people.js

var parent = module.parent.exports,
    gift = parent.gift;
exports.say = function(message) {
    console.log(gift);
    console.log(message);
};


exports로 배열도 사용해 보죠~


test.js

var people = require('./people.js');

console.log('who : ' + people[3]);


people.js

module.exports = ['kim', 'lee', 'park', 'shin', 'choi'];


우선, 사용하면서 본 유형들을 정리해 봤습니다.


혹시.. 보다시다.. 다른방법을 아시면 댓글로 공유해 주세요~


댓글
댓글쓰기 폼
공지사항
Total
1,670,009
Today
310
Yesterday
138
«   2019/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
글 보관함