7. module.exports, exports

const odd = '홀수입니다.';
const even = '짝수입니다.';

// module 키워드도 생략이 가능하다.
module.exports = {
  odd,
  even,
}
const odd = '홀수입니다.';
const even = '짝수입니다.';

// 아래처럼 작성할 수 있다.
exports.odd = odd;
exports.even = even;

// module.exports와 exports는 빈 객체이고 같은 객체를 바라본다.
// module.exports === exports === {}
console.log(module.exports === exports) // true
console.log(exports) // {}
const {odd, even} = require('./var');

function checkOddOrEven(number) {
  if (number % 2) {
    return odd;
  } else {
    return even;
  }
}

module.exports = checkOddOrEven;
// 위와 같이 module.exports에 함수를 할당하는 순간
// module.exports !== exports가 되어버린다.
console.log(module.exports === exports) // true
console.log(exports) // {}
console.log(module.exports) // {}

const odd = '홀수';
const even = '짝수';

exports.odd = odd;
exports.even = even;

console.log(module.exports === exports) // true
console.log(exports) // { odd: '홀수', even: '짝수' }
console.log(module.exports) // { odd: '홀수', even: '짝수' }

module.exports.test = 'test';

console.log(module.exports === exports) // true
console.log(exports) // { odd: '홀수', even: '짝수', test: 'test' }
console.log(module.exports) // { odd: '홀수', even: '짝수', test: 'test' }