根本无法收到来自 OpenWeatherMap API 的响应

can't receive response from OpenWeatherMap API at all

我是后端编程的新手,最近我遇到了这个问题,我无法从 Open Map Weather API 接收任何数据...我正在尝试使用 https/express 发送我的请求node.js... 我的 API 密钥和所有参数都是正确的,因为在 Postman 中一切正常... 如果有人可以帮助我,我将非常感激...... - 这是我的代码 btw-

const exp = require("express");
const hhh = require("https");
const app = exp();
app.get("/", (req, res) => {

    const url = "https://api.openweathermap.org/data/2.5/weather?q=London&appid=249e0887318ca2b591a7911fd54fe5fe";
    hhh.get(url, (response) => {
        console.log(response);
    })

    res.send("<h1>On Air 3000</h1>")
})


app.listen(3000, () => {
    console.log("Listening on 3000");
})    

来自官方文档[这里]:https://nodejs.org/api/http.html#http_http_get_options_callback.

The callback is invoked with a single argument that is an instance of http.IncomingMessage.

所以response是http.IncomingMessageclass的一个对象,可以让你得到API的响应,而不是你在浏览器或Postman中看到的结果.您可以在上面的同一文档中看到一些代码示例。

对于你的情况,你可以检查下面的代码,我测试过它有效:)

const exp = require("express");
const hhh = require("https");
const app = exp();
app.get("/", (req, res) => {

    const url = "https://api.openweathermap.org/data/2.5/weather?q=London&appid=249e0887318ca2b591a7911fd54fe5fe";
    hhh.get(url, (response) => {

        var result = '';

        //data come by chunks, we append new chunk to result
        response.on('data', function (chunk) {
          result += chunk;
        });
      
        //when we receive all the data, print to screen
        response.on('end', function () {
          console.log(result);
        });
    })

    res.send("<h1>On Air 3000</h1>")
})


app.listen(3000, () => {
    console.log("Listening on 3000");
})