nodejs http listener参数必须是一个函数

时间:2017-10-28 16:18:59

标签: node.js

尝试从require传递responseHandler而不是将其放在同一个文件中,但获取错误侦听器参数必须是一个函数。 console.log要求返回,返回一个函数,所以我没有看到问题?

def ok!
  self.update_attributes(status: :ok, error_message: nil)
end

如果我将第1行替换为downloader.js的内容,那么一切正常......

downloader.js的内容只是

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!?)

我想保持主文件干净小,并将其作为一个需求,想法吗?

3 个答案:

答案 0 :(得分:1)

您需要尝试:

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

您正在导出一个具有名为responseHandler的函数的对象,因此您需要直接调用它

答案 1 :(得分:1)

如果您只想导出该功能,可以使用以下功能:

release()

然后导入的值将是函数而不是具有函数值的对象:

module.exports = responseHandler;

答案 2 :(得分:0)

您只能导出不带名称的函数

module.exports = (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});
}