javascript - Http 请求在 Node.JS 中不起作用?

标签 javascript node.js http http-get

我现在很困惑。我已经尝试了一切,但仍然无法让它发挥作用。基本上,我正在尝试获取网站的 HTML,但它仅适用于 Google。这是我的代码:

const HttpClient = {
    get: function(url, callback) {
        var str = '';
        var req = http.get(url, function(response) {
            response.on('data', function (chunk) {
                str += chunk;
            });
            response.on('end', function () {
                callback(str);
            });
        }).on;
        return true
    }
}
HttpClient.get('http://www.google.com/index.html', (data) => {
    console.log(data);
});

您可以看到我提供的网址是 google.com。这是我发现的唯一一个实际返回内容的 URL。将 URL 替换为其他内容将使其不返回任何内容。

有谁知道为什么会这样吗?

最佳答案

单击蓝色的“运行代码片段”按钮并检查错误消息。

{ "message": "未捕获的 ReferenceError: http 未定义", “文件名”:“https://stacksnippets.net/js”, “线诺”:23, “科诺”:11 }

您需要确保需要 Node 的 http 模块。

在需要 http 模块后,我能够使用您的确切代码(尽管使用不同的 url)成功发出 GET 请求。

更新为使用 https:

const https = require('https')

const HttpClient = {
    get: function(url, callback) {
        var str = '';
        var req = https.get(url, function(response) {
            response.on('data', function (chunk) {
                str += chunk;
            });
            response.on('end', function () {
                callback(str);
            });
        })

        return true
    }
}

HttpClient.get('https://www.youtube.com/watch?v=oRvwlX3ihRg', (data) => {
    console.log(data)
}, (error) => {
    console.log(error)
});

关于javascript - Http 请求在 Node.JS 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45428987/

相关文章:

JavaScript 逻辑,按钮不起作用

javascript - 如何使基本的 YouTube 音乐机器人能够搜索标题而不是 URL

javascript - 在 Promise 管道中的 Promise 之间发送结果

java - 仅记录 http servlet 响应 header

javascript - 如何使用 Jquery ajax 从 Laravel 输出 json 响应(发生错误时)

javascript - 如何在 for 循环后运行此代码

javascript - 如何在根 <svg> 元素之前插入注释?

node.js - Nodejs 属性顺序保证

node.js - 如何在本地调试 firebase web 应用程序

swift - 如何将引号(“)包含到 Swift 中 HTTP Head 字段使用的字符串中