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; 没有什么意义。