API已解析,但未在Nextjs中发送响应

编程入门 行业动态 更新时间:2024-10-08 22:47:32

API已解析,<a href=https://www.elefans.com/category/jswz/34/1771168.html style=但未在Nextjs中发送响应"/>

API已解析,但未在Nextjs中发送响应

嗨,我必须在我的nextjs产品中进行相同的更改,因为我的委托API不支持许多调用,我希望每3分钟刷新一次原始数据。我从nextjs实现了API:我创建了一个pages/api/data,然后在内部调用端点,并在getInitialProps内部调用了对数据文件的索引。get工作正常,但是我有两个问题:

1:我收到一条警告消息,内容为:API解析后未发送对/ api / data的响应,这可能导致请求暂停。

2:它在3分钟后没有重新加载数据。我想这是因为Cache-Control值...

有帮助吗?谢谢

这是我的代码:

页面/ api /数据

import { getData } from "../../helper";

export default async function(req, res) {
  getData()
    .then(response => {
      res.statusCode = 200
      res.setHeader('Content-Type', 'application/json');
      res.setHeader('Cache-Control', 'max-age=180000');
      res.end(JSON.stringify(response))
    })
    .catch(error => {
      res.json(error);
      next();
    });
};

页面/索引

import React, { useState, useEffect } from "react";
import fetch from 'isomorphic-unfetch'

const Index = props => {

  return (
    <>Hello World</>
  );
};

 Index.getInitialProps = async ({ res }) => {
  const response = await fetch('http://localhost:3000/api/data')
  const users = await response.json()
  return { users }
};

export default Index;
回答如下:

You should return a Promise and resolve/reject it.

示例:

import { getData } from "../../helper";

export default async function(req, res) {
  return new Promise((resolve, reject) => {
    getData()
      .then(response => {
        res.statusCode = 200
        res.setHeader('Content-Type', 'application/json');
        res.setHeader('Cache-Control', 'max-age=180000');
        res.end(JSON.stringify(response))
        resolve();
      })
      .catch(error => {
        res.json(error);
        next();
        reject()
      });
  });
};

更多推荐

API已解析,但未在Nextjs中发送响应

本文发布于:2024-05-07 11:20:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756007.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:但未   API   Nextjs

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!