【问题标题】:how to fetch data from third party api using EXPRESS and AXIOS?如何使用 EXPRESS 和 AXIOS 从第三方 api 获取数据?
【发布时间】:2022-01-23 18:45:44
【问题描述】:

伙计们.....

所以我想从第三方 api 获取数据,但问题是数据已被获取但它没有显示在控制台中.....意味着当我运行我的服务器时,数据会显示在终端上,但它的没有显示在控制台中,而是 localhost 继续加载并且没有显示任何内容......

这是代码...

const express = require('express')
const axios = require('axios')

const app = express()

const axiosInstance = axios.create({
    baseURL: 'https://api.bittrex.com/api/v1.1/public',
    header: { 'Access-Control-Allow_Origin': '*' }
})
app.get('/', async(req, res, next) => {
        const response = await axiosInstance.get('/getmarketsummaries')
        console.log(response.data.result)

})

app.listen(3000, () => {
    console.log('listening on port 3000')
})

对此的任何解决方案如何在控制台中显示数据并停止 *localhost 持续加载......

【问题讨论】:

  • 你能在不创建实例的情况下获取结果吗?
  • 这里的控制台是什么意思?
  • @JatinMehrotra 我没试过。你能告诉我怎么做吗....
  • @cEeNiKc 我希望数据显示在控制台中(在 chrome 中),但它不显示任何内容,并且 localhost 继续加载。 ...但数据显示在终端中....
  • 正如 Anil 所说,您需要使用 .send 或 .json 方法发送响应,否则请求将挂起直到超时。要在 chrome 控制台中显示数据,您需要在进行 API 调用的客户端执行 console.log。在服务器端做 console.log 只会在终端显示数据。

标签: reactjs express server axios nodejs-express-server


【解决方案1】:

您需要使用send 方法发送响应,或者您可以使用json 方法

app.get("/", async (req, res, next) => {
  try {
    const response = await axiosInstance.get("/getmarketsummaries");
    console.log(response.data.result);

    //You need To send data from using send method
    res.status(200).send(response.data.result);

    //Or you can use json method to send the data
    res.status(200).json(response.data.result);

  } catch (err) {
    res.status(400).send(err);
  }
});

【讨论】:

  • 非常感谢 :):):) 它确实工作得很好......数据正在浏览器上显示......这很好......但是你能不能展示一个方法我如何控制台记录数据,因为它在控制台中显示注释......
  • 我认为将 API 数据整合到浏览器控制台需要前端集成,您需要在客户端获取 API,然后您可以将响应记录到浏览器,而不是将响应数据检查到控制台,您可以使用浏览器检查元素,然后转到可以检查您的响应的网络选项卡。
  • 没错...我尝试将它与 react 连接,它起作用了!非常感谢
【解决方案2】:

在 express 服务器中快速加载和挂起是因为您应该在 express get 调用中调用 next()

app.get('/', async(req, res, next) => {
        const response = await axiosInstance.get('/getmarketsummaries')
        console.log(response.data.result)
        
        res.send.status(200).json(response.data.result);
        next()
})

【讨论】:

  • 我试过了 localhost 没有连续加载很好!但是在控制台GET http://localhost:3000/ 404 (Not Found) 中记录了一个错误,并且浏览器也显示cannot GET / ....
  • 这是不正确的。 GET 调用应该发送响应,而不是调用 next()
  • 是的,这是真的 thsnk's :)
猜你喜欢
  • 2021-09-19
  • 2021-09-05
  • 2021-05-07
  • 2021-12-07
  • 2018-01-31
  • 1970-01-01
  • 2017-01-17
  • 1970-01-01
  • 2021-03-07
相关资源
最近更新 更多