CommonJS에서 exports 및 module.exports의 차이

1983 단어

exports와 모듈.exports의 상용 형식


우선, 두 가지 상용 형식:

제1종

// dep.js
exports.A = function() {}
// app.js
var dep = require('dep');
dep.A()

이 중 exports.A = function() {} 으로도 쓸 수 있다 module.exports.A = function() {}

제2종

// dep.js
module.exports = function () {}
// app.js
var dep = require('dep');
dep();

여기에만 사용할 수 있으니 주의하세요module.exports.다음은 왜.

exports와 모듈.exports 관계


SO의 명답
var module = { exports: {} };
var exports = module.exports;

// your code

return module.exports;

다음을 확인할 수 있습니다.
  • 최종 내보내기는 module.exports
  • exportsmodule.exports의 인용으로 코드를 간소화하는 데 도움을 준다. 예를 들어 module.exports.A = 1exports.A = 1로 간략하게 쓸 수 있다.

  • 주의해야 할 사항:
  • exports에 직접 값을 부여하면 exports = 1exports 사이의 관계를 끊는다.그 다음에 아무리 module.exports 에 변수를 걸어도 내보내지지 않습니다.
  • 이것은 exports의 정확한 사용 방법을 의미하고 exports.A = 1 이런 변수의 형식만 있다.
  • exports는 A 속성을 포함하는 모듈을 내보내지 않지만exports.A = B 가능합니다.

  • exports = { A: 1 }이 직접 부여되면 module.exports = { A: 1 }modules.exports 간의 관계를 끊고 modules.exports = 1 의미를 잃게 된다.그러나 이런 형식은 당신이 사용하고 싶은 데이터 형식을 직접 내보내는 데 자주 사용된다. 예를 들어 다음과 같다.
  • exports는 하나의 수조를 직접 도출하여 exports
  • D는 함수/클래스를 직접 도출하여 var D = require('dep') 또는 modules.exports = [1, 2]
  • 순서대로 유추하고 문자열 등 다른 유형도 직접 내보낼 수 있다.


  • 참고

  • module.exports vs exports in Node.js
  • Difference between “module.exports” and “exports” in the CommonJs Module System
  • Node.js Module – exports vs module.exports
  • exports shortcut
  • 좋은 웹페이지 즐겨찾기