본문 바로가기

JavaScript/Node.js

사용자 정의 모듈

728x90

exports : 사용자 모듈 만들기(여러 속성과 메소드), require()

만들고자 하는 모듈을 파일로 만들고 exports객체의 속성이나 메소드를 정의해주면 모듈을 만들어 낼 수 있습니다. 그리고 만들어진 모듈을 전역 함수 require()를 이용하여 추출합니다.

// cicle.js - 모듈이 되는 파일
var PI = Math.PI;
 
exports.area = function (r) {
    return PI * r * r;
};
 
exports.circumference = function (r) {
    return 2 * PI * r;
};

// foo.js - 실행될 파일
var circle = require('./circle.js');
console.log( 'The area of a circle of radius 4 is '
    + circle.area(4));
    

$ node foo.js
The area of a circle of radius 4 is 50.26548245743669


module.exports : 사용자 모듈 만들기(하나의 속성이나 메소드)

exports와 다른 점 : exports는 속성이나 메소드를 여러 개 정의할 수 있지만 module.exports는 하나만 정의할 수 있습니다.

// square.js - 모듈이 되는 파일
module.exports = function(width) {
    return {
        area: function() {
            return width * width;
        }
    };
}

// bar.js - 실행될 파일
var square = require('./square.js');
var mySquare = square(2);
console.log('The area of my square is ' + mySquare.area());


$ node mymain.js 
사용자 모듈입니다.

 

index.js 파일

var module = require('./mymodule');

만약 위처럼 확장자를 입력하지 않는다면
1. 먼저 mymodule.js 파일을 찾습니다. 있다면 그 파일을 추출합니다.
2. mymodule.js 파일이 없다면 mymodule이라는 폴더를 찾습니다. 그리고 그 폴더의 index.js 파일을 찾아 추출합니다.

[출처]
https://opentutorials.org/module/938/7190

+ 보면 좋을만한 사이트
https://poiemaweb.com/nodejs-module

728x90