2017-10-28 1 views
0

requestHandler를 require에서 전달하려고 시도하지만 동일한 파일에 있지만 responseListener 인수를 가져 오는 것은 함수 여야합니다. console.log는 return을 요구하고 함수를 반환하므로 문제가 보이지 않습니까? 나는 모두가 잘 작동 downloader.js의 내용에 대한 라인 1을 교체하는 경우nodejs http listener 인수는 함수 여야합니다.

var responseHandler = require("./downloader.js"); 
log(responseHandler); // Logs [Functions: responseHandler) 
request = https.get(fileUrl, responseHandler); // Error "listener" argument must be a function (according to the log line above, it is!?) 

... downloader.js의

내용은

var responseHandler = function(response){ 
    // some code to process response.statusCode 
    response.on('data',function(chunk){//stuff}); 
    response.on('error',function(e){//stuff}); 
    response.on('end',function(e){//stuff}); 
} 
exports.responseHandler = responseHandler; 

난을 유지하고자하는 것입니다 메인 파일은 깨끗하고 작고 필요로하는 아이디어로 작업하고 있습니까?

답변

1

를 호출 할 필요가 있으므로,

request = https.get(fileUrl, responseHandler.responseHandler); 

당신은 ResponseHandler에라는 함수를 가진 개체를 내보낼 함수 값을 가진 객체가 아니라

module.exports = responseHandler; 

기능을 다음 가져온 값이됩니다 : 당신은 그것을 할 수

var responseHandler = require("./downloader.js"); 
+0

Doh ... 나는 잘못된 방법으로 수출품을 사용하고있었습니다 ... – Darcey

1

당신은 일을 시도해야합니다 : 당신은 당신은 단지 기능을 내보내려면 직접

+0

이것은'.js' 파일에 여러 함수가있는 경우 현재 하나의 함수를 내 보내지 못하는 것보다 더 정확합니다. – wrangler

관련 문제