Express.js 웹 앱이 있습니다. 주 app.js
파일에서 I require()
은 제 3 자 종속성의 묶음입니다. 최근에 내 app.js
코드의 일부를 별도의 모듈로 추출하기 시작했습니다. 내 모듈 내부노드 모듈에서 객체 참조를 사용 가능하게 만드는 방법은 무엇입니까?
// in app.js
var users = require('./modules/users');
// and then e.g.
// users.add(doc);
, 나는 가끔 내 주요 app.js
파일에서 사용할 수있는 객체를 사용할 필요가 그리고 내 모듈에 그 객체에 대한 참조를 전달하는 가장 좋은 방법은 무엇 궁금하네요.
// in app.js
// pass needed object references in initialization step
users.init([db, logger]);
및
// in modules/users.js
var db, logger;
exports.init = function (deps) {
db = deps[0];
logger = deps[1];
};
이 방법은 의미가 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?
한 번만 해석 하시겠습니까? 거룩한 암소, 그것은 모두 의미가 있습니다 :) 어떻게 든 나는 각각의'require()'가 모듈의 새로운 인스턴스를 생성한다고 생각했습니다. –
아마 모든 것을 이해하기 위해서 db 모듈은 db 연결 인스턴스의 Promise를 정의해야합니다. 그렇지 않으면 연결이 아직 준비되지 않았고 db conn을 사용하는 각 모듈이 Promise를 해결해야하기 때문입니다. –