2014-06-13 10 views
2

첫 번째 Node.js 응용 프로그램을 개발하고 있습니다. 그리고 모든 것이 발견되지만 이제 앱이 커지고 있습니다. 이 앱을 다른 파일로 나누고 싶습니다. 그래서 필자는 앱을 파일로 나누기 위해 "require"메소드를 사용했습니다.Node.js - "모듈을 찾을 수 없습니다", 다른 모듈을 호출 할 때

하지만 내 앱에 '모듈을 찾을 수 없음'이 표시됩니다.

** Call Ordering ** 
A.js is call B.js <-- call is ok 
B.js is call C.js <-- Cannot Find module, B.js can't call 'test222 function' 

내 샘플 코드.

a.js

...  
var m=require('./controller/b.js'); 
m.register(req,res); 

b.js

exports.register=function(){ 
var MyModule=require('./model/c.js'); 
console.log(MyModule.test222()); <--------- cannot find module 
}; 

c.js

exports.test222=function() { 
    return "c.js"; 

}; 

도와 또는 조언. 고맙습니다. 다른 모듈에서 모듈을 호출하려고합니다. 내 노드 응용 프로그램이 "모듈을 찾을 수 없습니다"에 대해 작동하지 않습니다. 그것을 해결하는 방법? 그래서

./a.js 
./controller/b.js 
./model/c.js 

당신이 ./a.js을 실행 ./controller/b.js 및 필요합니다

+0

어떤 폴더에 a.js, b.js 및 c.js가 있습니까? –

+0

'a.js'는 './'에 있습니다. – user3736174

+0

a.js가/컨트롤러에 있습니까? –

답변

1

당신이 그렇다면, 당신이 다음과 같은 파일 구조를 가지고 있음을 알 수 대신 var m=require('./controller/b.js');

var m=require('./controller/a.js');를 작성하여 잘못 입력 한 것 같다 그것은 잘 작동합니다. 그러나 ./controller/b.js./model/c.js이 필요한 경우 노드는 each module is relative to the file calling require()이므로 c.js./controller/model.js으로 해결합니다.

이 때문에 오류가 발생합니다.

는 자동으로 바로 JS와 모듈의 이름을 입력하여 node_modules 폴더 에서 모듈에 대한 검색 기능을 필요로

var MyModule=require('../model/c.js'); 
0

var MyModule=require('./model/c.js'); 

를 교체해야이 문제를 해결합니다. 확장

var b=require('b.js'); 
var c=require('c.js'); 

하지만 당신은 당신의 node_modules의 구조를 변경할 경우 상위 디렉토리에 하위 디렉토리에서 이동

"../" 

테이핑하여 moduleusing 상대 waie로 이동해야하는 폴더를 당신은 상대적인 방식을 존중해야
"./" 

는 하위 디렉토리 상위 디렉토리로 이동합니다.

관련 문제