Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在nextjs中从两个不同的api路由获取数据?

如何在nextjs中从两个不同的api路由获取数据?
EN

Stack Overflow用户
提问于 2022-08-12 13:01:29
回答 1查看 91关注 0票数 -2

我使用的是Next.js,我需要从两个不同的API路由获取数据。我想在getServerSideProps中获取数据。

我需要的第一个数据来自http://localhost:3000/api/admin/classes/${className}路由。

第二组数据将来自http://localhost:3000/api/admin/classes/${className}/subjects这个路由。

当我尝试从一个API中获取数据时,它工作得很好。我尝试使用getServerSideProps中的代码从这两个API中获取数据。但不起作用。

我想要像这个export default function classPage({ subjects, classDetail }) {}那样的数据。如果可能的话,来自gerServerSideProps的返回道具应该如下所示:return { props: {classDetail: data, subjects: data2} }

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export async function getServerSideProps({ query: { className } }) {
  const res = await fetch(
    `http://localhost:3000/api/admin/classes/${className}`
  ).then(() => {
    const res2 = await fetch(`http://localhost:3000/api/classes/${className}/subjects`)
  });
  const { data } = await res.json();
  const {data2} = await res2.json()

  return { props: { classDetail: data } };
}

Api获取请求代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
      try {
        const subjectDetail = await Subject.find({}).populate('classDetail')
        res.status(200).json({success: true, data: subjectDetail})
      } catch (error) {
        res.status(400).json({success: false})
        console.log(error)
      }
EN

回答 1

Stack Overflow用户

发布于 2022-08-13 01:08:47

您可以做得更简单,我假设您不需要等待第一个请求结束才能启动第二个请求,所以您可以简单地使用Promise.all来等待两个请求完成。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export async function getServerSideProps({ query: { className } }) {
  // Create the promises for the data we need to fetch
  const promises = [
    fetch(`http://localhost:3000/api/admin/classes/${className}`).then(res => res.json()),
    fetch(`http://localhost:3000/api/classes/${className}/subjects`).then(res => res.json()),
  ];

  // Wait for all the promises to resolve and get the data
  const [classDetail, subjects] = (await Promise.all(promises)).map(p => p.data);

  return { props: { classDetail, subjects } };
}

但是,第二个请求似乎存在的问题是,当您编写:const {data2} = await res2.json()时,您试图从响应中获取属性data2,这可能不是您想要的结果。您需要从两个响应中获得data,就像我在这里所做的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73339756

复制
相关文章
梳理NextJS13两种路由下的不同渲染方式:SSG,ISR,SSR,RSC
NextJS是一款基于 React 进行全栈开发的框架,是当下非常火的React全栈框架之一,在去年NextJS发布了V13版本,而本文将基于V13版本的app路由,来梳理它的几种不同的渲染方式的实现,并且与pages路由做对比。
Jou
2023/09/01
1.9K1
梳理NextJS13两种路由下的不同渲染方式:SSG,ISR,SSR,RSC
从损坏的手机中获取数据
有时候,犯罪分子会故意损坏手机来破坏数据。比如粉碎、射击手机或是直接扔进水里,但取证专家仍然可以找到手机里的证据。
FB客服
2020/02/23
10.2K0
[PHP] laravel中的api路由前缀
所有的 Laravel 路由都在 routes 目录中定义,这些文件都由框架自动加载。routes/web.php 文件用于定义 web 界面的路由。这里面的路由会被分配给 web 中间件组,它提供了会话状态和 CSRF 保护等功能。 定义在 routes/api.php 中的路由都是无状态的,并且被分配了 api 中间件组。
唯一Chat
2021/06/22
3.3K0
[PHP] laravel中的api路由前缀
node通过路由获取不同用户信息
具体功能:使用不同url判断是老师或者学生,老师的工号4-6位,学生学号8-10位,否则提示学号不正确,
十月梦想
2018/08/29
4250
JDK8利用Stream API对比筛选两个List的不同数据
对于A1的List先遍历一下,然后提取数据:是先在A1类里加个text字段,然后遍历子List,做下排序,然后拼接到字段里,为后面两个List做字段对比做铺垫
SmileNicky
2022/05/29
1.3K0
nextjs 写 css loader 处理多地区不同基础变量的方法
由于项目在多地区进行发布,为了复用,主工程使用同一个,但是这样会带来一个问题,由于地区的设备分布不同,以及当地的字体选择不一样,从而导致了 global 中的一些熟悉无法复用,而且必须配置两套,那么如何来解决这个问题呢?
蛋未明
2021/09/10
1.5K0
逆向从 Instruments 中获取 GPU 数据
背景: RTMP SDK需要获取硬编硬解时候的GPU数据,第一时间想起了TraceParser, 但是TraceParser不支持GPU Driver模板. 于是想着能不能扩展TraceParser模板. 发现main.m文件只有寥寥几行代码,完全不知道做了什么, 但是google和km之后发现应该是采用了反序列化的方式来dump出数据. 缺点很明显, 需要自己实现NSCoding,还需要先将.trace文件解压出.run文件. 不知道结构无从下手.
Locker
2018/08/01
5.8K0
逆向从 Instruments 中获取 GPU 数据
laravel-admin select、multipleSelect从api中获取选项列表
select、multipleSelect从api中获取选项列表 $form->select($column[, $label])->options([1 => 'foo', 2 => 'bar', 'val' => 'Option name']); 或者从api中获取选项列表: $form->select($column[, $label])->options('/api/users'); 其中api接口的格式必须为下面格式: [ { "id": 9, "tex
友儿
2022/09/11
3.8K0
图解 | Elasticsearch 获取两个索引数据不同之处的四种方案
这个问题的本质是实现类似:linux 下的 diff 命令的操作,找出一个索引中存在而在另外一个索引不存在的数据。
铭毅天下
2022/09/26
1.8K0
图解 | Elasticsearch 获取两个索引数据不同之处的四种方案
金融数据获取的api接口
最近苹果的股价一路疯长,继周四突破万亿美元市值后,周五盘中高点、收盘价双创新高。盘中高点达208.74美元,收盘价报207.99美元,上涨0.29%,创历史收盘新高,市值达10045.76亿美元。
数据小磨坊
2018/08/16
8.2K0
金融数据获取的api接口
CaseStudy(showcase)数据篇-从XML中获取数据
做silvelight也有一段时间了,相册、游戏,刚刚完成的showcase这个小程序算是一个阶段了。这里就以showcase这个项目来做一下CaseStudy。 数据篇-从XML中获取数据 这个项目
用户1172164
2018/01/16
4.4K0
ASP.NET Core中如影随形的”依赖注入”[上]: 从两个不同的ServiceProvider说起
我们一致在说 ASP.NET Core广泛地使用到了依赖注入,通过前面两个系列的介绍,相信读者朋友已经体会到了这一点。由于前面两章已经涵盖了依赖注入在管道构建过程中以及管道在处理请求过程的应用,但是内容相对分散和零碎,我们有必要针对这个主题作一个归纳性的介绍。采用依赖注入的服务均由某个ServiceProvider来提供,但是在ASP.NET Core管道涉及到两个不同的ServiceProvider,其中一个是在管道成功构建后创建并绑定到WebHost上的ServiceProvider,对应着WebHos
蒋金楠
2018/02/08
1.6K0
ASP.NET Core中如影随形的”依赖注入”[上]: 从两个不同的ServiceProvider说起
通过Java API获取Hive Metastore中的元数据信息
在文章中,我们说到Hive 3.0.0版本开始,其单独提供了standalone metastore服务以作为像presto等处理引擎的元数据管理中心。
从大数据到人工智能
2022/01/19
2.9K0
Nextjs任意组件数据加载
Nextjs是React生态中非常受欢迎的SSR(server side render——服务端渲染)框架,只需要几个步骤就可以搭建一个支持SSR的工程(_Nextjs_的快速搭建见Next.js入门)。 本文的案例代码来自于前端标准模板项目。
随风溜达的向日葵
2019/03/12
5.1K0
Nextjs任意组件数据加载
如何在Power Query中获取数据——表格篇(7)
Table.SelectRowsWithErrors(tableas table,optional columns as nullable list)as table
逍遥之
2020/03/23
2.5K0
NextJS 读取静态文件数据
参考代码示例数据在 NextJS 项目下添加文件 ./data/user.json,示例内容如下{ "name": "Anoyi🐬"}示例读取文件数据添加页面 ./pages/user.tsx,示例内容如下import { readFileSync } from 'fs'import path from "path"const Page = ({user}) => { return ( <div> {user.name} </div> )}export async functio
轻量级云原生架构实验室
2022/12/02
1.6K0
pandas | 如何在DataFrame中通过索引高效获取数据?
上篇文章当中我们简单介绍了一下DataFrame这个数据结构的一些常见的用法,从整体上大概了解了一下这个数据结构。今天这一篇我们将会深入其中索引相关的应用方法,了解一下DataFrame的索引机制和使用方法。
TechFlow-承志
2020/07/10
13.7K0
pandas | 如何在DataFrame中通过索引高效获取数据?
如何在Power Query中获取数据——表格篇(3)
Table.Last(table as table, optionaldefault as any)as any
逍遥之
2020/03/23
2.5K0
如何在Power Query中获取数据——表格篇(1)
Table.ColumnNames(table as table) as list
逍遥之
2020/03/23
3.2K0
点击加载更多

相似问题

如何在nextjs中从API路由获取完整的url

137

无法使用Nextjs从api获取数据

43

如何在NextJS的getServerSideProps函数中从Axios中获取API数据?

40

如何在构建和部署时从Nextjs路由获取数据?

17

使用NextJS和Material从API中获取数据

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文