2017-09-05 11 views

답변

4

루프를 통해 매번 require()이 호출되지만 require()이로드 된 모듈은 캐시되고 모듈로드 코드는 모듈이 처음로드 될 때만 실행됩니다. 따라서 약간의 여분의 오버 헤드가 require('path')을 호출하는 동안 캐시에서 해당 모듈 이름을 조회하고 캐시 된 모듈 핸들을 반환하는 것입니다. require()에 전화 할 때마다 모듈을로드하고 구문 분석하고 실행할 필요가 없습니다.

여전히이의 습관으로 더 나은 것, 말했다 :

const pathModule = require('path'); 

function something(...paths) { 
    return pathModule.join(...paths); 
} 

당신이 그것을하고 있던 방법에 대한 다른 단점은 path 모듈이로드를 처음 있음을의 시스템은 동기 파일 입출력을 사용하여 다중 사용자 서버에서 좋지 않습니다. 파일 I/O는 처음에는 발생하지만 여전히 좋은 방법은 아닙니다. 서버 초기화시 동기식 I/O를 방해하지 않는 것이 좋습니다.