簡體   English   中英

Node JS上的HTTP請求回調

[英]HTTP request callback on Node JS

嗨,我正在嘗試使用回調方法通過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();

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM