TypeError:callback不是一个函数 –
我有这个代码是Pipl API包装的一部分,我得到这个错误:
这个主代码做一个获取请求,并从API返回信息
期待得到你的帮助:)
return callback(err, JSON.parse(body) || body); TypeError: callback is not a function
这里有什么问题? 我该如何解决这个错误?
(function() { var _ = require('lodash') , request = require('request') , util = require('util') , url = require('url'); var Handler = function(subClass) { this.createCall = function(method, path, options, callback) { return function(config) { if (_.isFunction(options)) { callback = options; options = {}; } path = url.format({ pathname: path, query: options }); path = url.resolve(config.api_url, path); console.log(path) var parameters = { url: path, method: method }; request(parameters, function(err, response, body) { return callback(err, JSON.parse(body) || body); }); } }; _.merge(subClass, this); return this; }.bind(this); module.exports = Handler; }).call(this);
该问题正在发生,因为search.query
函数接受选项和callback。 但是在NPM文档中,它表示它接受type, options, callback
检查guthub
这个错误意味着你正试图调用一些函数,而不是一个函数,在你的情况下,问题是你发送选项(这是一个object
),而不是callback(应该是一个function
)
当你调用createCall
函数时,你应该传递4个参数给它,最后一个参数应该是一个函数(稍后会被调用)。 它看起来像行callback = options;
没有什么意义。