2013-05-20 3 views
2

를 사용왜 필요합니까 및 fs.existSync 내가 여기에이 코드가 다른 상대 경로

if(fs.existsSync('./example/example.js')){ 
    cb(require('../example/example.js')); 
}else{ 
    cb(); 
} 

fs.existSyncrequire가 아닌 다른 디렉토리를 사용되어야한다?

\example 
    example.js 
\routes 
    index.js <-- this is the one where I am using this code 
app.js <-- this one requires index.js and calls its functions using app.get('/example',example.index); 
+0

나는 '가까운'표를 이해하지 못한다. 적절한 질문이라고 생각한다. – robertklep

+0

올바른 질문입니다. – FabianCook

답변

3

당신이 require에 사용하는 경로 그래서 상대 (당신이 require를 호출하는 파일에 상대적입니다 (I 특급 BTW 사용하고 있습니다) ... 필요하지 않은 것을 제외하고 디렉토리 트리 될 것 ~ routes/index.js); fs.existsSync() (그리고 다른 fs 함수)에 사용하는 경로는 현재 작업 디렉토리 (사용자가 node을 시작할 때 현재 있던 디렉토리)와 관련이 있습니다 (해당 응용 프로그램이 fs.chdir을 변경하지 않으면 해당 디렉토리).

이 차이의 이유는 단지 추측 할 수 있지만 require은 일부 '추가'논리 w.r.t가있는 메커니즘입니다. 다른 모듈을 찾는 것이 이치에 맞습니다. 또한 앞서 설명한 fs.chdir과 같이 응용 프로그램의 런타임 변경에 영향을받지 않아야합니다.