首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用getStaticPaths和props时不生成Next.js

使用getStaticPaths和props时不生成Next.js
EN

Stack Overflow用户
提问于 2021-06-28 04:44:16
回答 1查看 120关注 0票数 0

在我的一个路由中使用getStaticPropsgetStaticPaths方法时,我尝试运行next build,但每次都失败。首先,它无法连接到我的应用程序接口(很明显,它们是使用Next.js的应用程序接口创建的,这些路由在不运行Next.js应用程序时是不可用的)。我认为在后台运行开发服务器可能会有所帮助。它确实发生了,但产生了另一个问题,就像这样:

代码语言:javascript
运行
复制
Error: Cannot find module for page: /reader/[id]
Error: Cannot find module for page: /
> Build error occurred
Error: Export encountered errors on following paths:
        /
        /reader/1

不知道为什么。下面是/reader/id的代码

代码语言:javascript
运行
复制
const Reader = ({ reader }) => {
  const router = useRouter();

  return (
    <Layout>
      <pre>{JSON.stringify(reader, null, 2)}</pre>
    </Layout>
  );
};

export async function getStaticPaths() {
  const response = await fetch("http://localhost:3000/api/readers");
  const result: IReader[] = await response.json();

  const paths = result.map((result) => ({
    params: { id: result.id.toString() },
  }));

  return {
    paths,
    fallback: false,
  };
}

export async function getStaticProps({ params }) {
  const res = await fetch("http://localhost:3000/api/readers/" + params.id);
  const result = await res.json();
  return { props: { reader: result } };
}

export default Reader;

没有什么特别事情。我从文档中重写了代码,并根据我的网站进行了调整。

这是/api/readers/[id]处理程序。

代码语言:javascript
运行
复制
export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse
) {
  const knex = getKnex();
  const { id } = req.query;

  switch (req.method) {
    case "GET":
      try {
        const reader = await knex
          .select("*")
          .from("readers")
          .where("id", id)
          .first();

        res.status(200).json(reader);
      } catch {
        res.status(500).end();
      }

      break;
  }
}

也没什么特别的。那么,为什么每次我尝试构建我的应用程序时它都会崩溃呢?提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-06-28 08:01:20

您不应该从getStaticProps获取内部API路由-相反,您可以直接在getStaticProps中编写API路由中存在的获取代码。

https://nextjs.org/docs/basic-features/data-fetching#write-server-side-code-directly

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

https://stackoverflow.com/questions/68155114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档