【问题标题】:Extracting a JSON Object from a URL从 URL 中提取 JSON 对象
【发布时间】:2017-04-12 20:49:31
【问题描述】:

我们正在尝试通过 http 请求从 URL 中提取 JSON 对象。但是,当我们尝试返回文本时始终得到“未定义”。我们实现http请求的方式有问题吗?

function getUserData(email) {
    var pathURL = "/" + email + "/data"
    var options = {
        host: 'localhost',
        port: 3000,
        path: pathURL,
        method: 'GET',
        headers: {
            accept: 'application/json'
        }
    };

var x = http.request(options, function(res){
    console.log("Connected");
    res.on('data', function(data){
        console.log(data);
    });
});
}

【问题讨论】:

    标签: json node.js express xmlhttprequest httprequest


    【解决方案1】:

    使用关闭http.request()
    x.end();
    这里引用了一个类似的问题。
    Sending http request in node.js

    尝试将错误记录为:

    req.on('error', function(err){
      console.log('problem with request:',err.message);
    });  
    

    同时检查the documentation of http library

    【讨论】:

    • 我们仍然遇到无法读取未定义的相同错误。但是,当我们添加 x.end() 行时,它会在控制台中打印 undefined 和“connected”。不知道从这里去哪里
    • 尝试记录错误。在res.on();方法下面添加。
    【解决方案2】:

    响应正文是数据但不返回到x

    var body = []
    request.on('data', function(chunk) {
        body.push(chunk)
    }).on('end', function() {
        body = Buffer.concat(body).toString()
        // all is done, you can now use body here
    })
    

    【讨论】:

    • 我不太确定我是否理解您的评论。你能再解释一下吗?
    猜你喜欢
    • 2021-09-24
    • 2017-07-21
    • 2017-08-12
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多