【问题标题】:Multiple get request using axios in Nodejs在Nodejs中使用axios多次获取请求
【发布时间】:2021-03-27 23:05:46
【问题描述】:

我想使用 Axios 将两个 API 数据发送到 HTML 文件 但我无法弄清楚问题请帮助我 我的代码是

app.get('/', (req, res) => {
    const Url1 = "https://api.covidindiatracker.com/state_data.json";
    const x = axios.get(Url1).then((response1) => {
        res.render("index", {
          appName: "COVID-19 Tracker",
          pageName: "India Fights Corona",
          data1: response1.data
      });
    })
});

app.get('/', (req, res) => {
  const Url2 = "https://api.covidindiatracker.com/total.json";
  const y = axios.get(Url2).then((response2) => {
      res.render("index", {
        data2: response2.data
      });
    })
});

在我的 HTML 页面中

<h3><%= JSON.stringify(data1.recovered) %></h3>

and 

<td><%= data2.id %></td>

为什么它不起作用 请帮帮我

【问题讨论】:

  • 所以您的顶级代码(带有app.get... 位)正在您的服务器上运行,在 node.js 中?
  • 从我读到的你的第一个路径处理程序将优先于第二个(或者我不记得的其他方式)如果你想让你的客户端请求处理取决于两个后续请求,声明一个处理程序并查看 Promise.all developer.mozilla.org/fr/docs/Web/JavaScript/Reference/…
  • 您在第一个 app.get 中发送响应,这将完成您的请求-响应周期。因此,您的第二个 app.get 永远没有机会执行!

标签: javascript node.js api axios


【解决方案1】:
app.get('/', (req, res) => {
  const url1 = "https://api.covidindiatracker.com/state_data.json";
  const Url2 = "https://api.covidindiatracker.com/total.json";
  axios.all([
   axios.get(url1), 
   axios.get(url2)
 ]).then(axios.spread((data1, data2) => {
     res.render("index", appName: "COVID-19 Tracker",
          pageName: "India Fights Corona",
          data1: data1.data,
          data2: data2.data
 }));
});

此链接会有所帮助

How to post multiple Axios requests at the same time?

【讨论】:

    猜你喜欢
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 2020-07-17
    • 2021-12-29
    • 1970-01-01
    • 2013-01-24
    • 2019-01-06
    相关资源
    最近更新 更多