javascript - Node JS 上的 HTTP 请求回调

标签 javascript json node.js http

您好,我正在尝试使用回调方法通过 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 响应。如果有人可以帮助我,我将不胜感激。

最佳答案

在您加载函数的另一个文件中,您需要确保使用了回调参数。请参阅下面的代码段

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();

}

关于javascript - Node JS 上的 HTTP 请求回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33851938/

相关文章:

node.js - 使用nodeJS在Sequelize中创建一行后如何重新加载表?

node.js - 使用 JWT (react + nodejs) 处理 Google OAuth

javascript - 如何在移动模拟器中查看我的 HTML 网页并使我的代码更高效?

javascript - 使用 JS 随机排序 div 元素列表

json - 将 Go 结构转换为 JSON

javascript - 意外结果,解析 ASP.Net 中的 JSON 对象数组

javascript - 在js中将json解析为.csv

javascript - 带 Angular 多维数组

javascript - 使用 Node.JS 可以同时运行的 setTimeout() 方法的最大数量是多少

javascript - Mongoose.js 从不通过 Set 保存字段