嗨,我正在尝试使用回调方法通过http获得响应。但是我收到一个错误消息,说回调不是函数。
module.exports.ipLookup = function (res, callback) {
var http = require('http');
var str = '';
var options = {
host: 'ip-api.com',
port: 80,
path: '/json/',
method: 'POST'
};
var str= "";
var req = http.request(options, function (res) {
res.on('data', function (body) {
str += body;
});
res.on('end', function () {
callback(str);
});
});
req.end();
return str;
}
id是什么应该通过ip-api.com返回json api响应。如果有人可以帮助我,将不胜感激。
在另一个文件中,您需要从加载函数开始,以确保使用了callback参数。请参见下面的代码段
var Lookup = require('./ip');
Lookup.ipLookup(function (response) {
console.log(response) // check if response is valid
})
您需要将导出的函数更改为仅接受一个参数,因为像这样在函数体内没有使用第一个参数。
module.exports.ipLookup = function (callback) {
var http = require('http');
var str = '';
var options = {
host: 'ip-api.com',
port: 80,
path: '/json/',
method: 'POST'
};
var req = http.request(options, function (res) {
res.on('data', function (body) {
str += body;
});
res.on('end', function () {
return callback(str);
});
});
req.end();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句