module.exports์ exports
Interested in ReactJS, RxJS and ReasonML.
module
์ exports
์์ฑ์ด ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ด๋ฉฐ, exports
๋ ๋ณดํต module.exports
๋ก ์ค์ ๋๋ ์ผ๋ฐ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์์ด๋ค.
exports.a = 42;
์ ๊ฐ์ด exports
์ ์์ฑ์ ์ค์ ํ๋ฉด, module.exports.a
๋ ์ค์ ์ด ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๊ฐ์ฒด๊ฐ ์ฐธ์กฐ๋ก ์ ๋ฌ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ, exports
์ module.exports
๋ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ฉฐ, this
๋ํ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
๋ค์๊ณผ ๊ฐ์ ์์ ๋ฅผ ํตํด ํ์ธํ ์ ์๋ค.
# write file with printf
$ printf "// module.exports\nmodule.exports.add = function (a, b) { return a + b; };\n\n// exports\nexports.add = function (a, b) { return a + b; };\n\n// this\nthis.add = function (a, b) { return a + b; };" > math.js
# execute node.js
$ node
> const math = require('./math');
undefined
> math
{ add: [Function] }
> math.add(42, 5);
47