2017-01-25 1 views
0

나는 '항목 상태-manager.js'를 내보낼 파일이 :import module 오류가 함수가 아닙니다.

module.exports.aggregate_states = function (member_states) { 
    console.log(member_states); 
} 

다른 파일이 모듈 사용 기능 'aggregate_states'가져와야합니다 :

var aggregate_states = require("./item-state-manager.js") 

module.exports.saveItem = function() { 
var aggregate = aggregate_states("state"); 
} 

을하지만 난 오류 수신 :

TypeError: aggregate_states is not a function 

'item-state-manager.js'을 (를) 잘못 가져 옵니까?

답변

2

필자는 require가 module.exports 객체를 반환한다는 것을 알고있다.

aggregate_states가 내보낼 유일한 기능인 경우 이것을 사용하십시오.

module.exports = function (member_states) { 
    console.log(member_states); 
} 

그렇지 않으면 다음과 같이 가져 오십시오.

var aggregate_states = require("./item-state-manager.js").aggregate_states; 
+0

감사합니다. 6 분 후에 답을 표시하십시오. – Serhiy

0

이 시도 :

var aggregate_states = require("./item-state-manager.js").aggregate_states; 

module.exports.saveItem = function() { 
var aggregate = aggregate_states("state"); 
} 

aggregate_states 전체 반환 모듈의 단지 한 속성입니다, 당신은 당신이이처럼 보이는 Object입니다 전체 모듈 얻을 필요로 할 때 :

{ 
    aggregate_states: function() {...} 
} 
0

당신을 모듈을 올바르게 가져 오지 못했습니다. 어느 가져 오기가 직접 노드의 최신 버전을 사용하는 경우

var aggregate_states = require("./item-state-manager.js").aggregate_states; 

또는 기능

var stateManager = require("./item-state-manager.js"); 
// And use it like this 
stateManager.aggregate_states(/*...*/) 

을 모듈을 수입하고 전화를 이용하여 funcion, 당신도 할 수

const { aggregate_states } = require("./item-state-manager.js"); 
관련 문제