0
다음

내가 대해 걱정 것입니다 ,하지만 당신에게 예제를 보여 드리겠습니다. 나는이 같은 의존성을 관리 해요 :Node.js를하고 dependecies 관리

server.js :

var express = require('express'); 

var app = express(); 

app.use('/auth', require('./routes/auth')); 
app.use('/profile', require('./routes/profile')); 

루트/auth.js :

var express = require('express'); 

var router = express.Router(); 
// add routes to router 
module.exports = router; 

루트/profile.js :

var express = require('express'); 

var router = express.Router(); 
// add routes to router 
module.exports = router; 

방법 당신은 모든 모듈에서 필요할 때마다 익스프레스를 가져올 것입니다. 나는 익스프레스로 예제를 보여 주지만 다른 모듈들과 함께하고있다. 내가 이런 의존성을 관리하는 경우

은 더 잘 만들까요?

server.js :

var express = require('express'); 
var app = express(); 

app.use('/auth', require('./routes/auth')(express)); 
app.use('/profile', require('./routes/profile')(express)); 

루트/auth.js :

module.exports = function (express) { 
    router = express.Router(); 
    // add routes to router 
    return router; 
} 

루트/profile.js : 내 의심이 있음을 인정해야

module.exports = function (express) { 
    router = express.Router(); 
    // add routes to router 
    return router; 
} 

Javascript와 Node.js에 대한 지식이 부족하고 Python으로 배경이 생겼기 때문에 첫 번째 양식을 좋아합니다.

모든 조언을 주시면 감사하겠습니다.

+1

require를 사용하면 모듈이 캐시되므로 require를 여러 번 호출해도 성능에 영향을주지 않습니다. 나는 그것이 선호의 문제라고 생각한다. –

+0

@BenFortune 로컬 모듈과 동일합니까? (require ('./config/db')) – sanfilippopablo

+0

100 % 확신 할 수는 없지만 같은 방식으로 작동한다고 생각합니다. –

답변

1

Node.js를 'require 캐시 최초의 호출시에 모든 모듈 이후 성능의 진정한 차이는 없다. 그러나, 두 번째 접근법은 명백한 의존성 주입의 이점을 갖는다. Express의 조롱 된 버전을 제공하여 더 높은 격리 수준에서 모든 모듈을 테스트 할 수 있습니다. 또한 구성이나 데이터베이스 개체와 같은 추가 종속성을 제공 할 준비가되었습니다.

관련 문제