TypeError:部署到Vercel(Next.js)时获取失败

xghobddn  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(129)

我正在使用next.js构建一个网站,它使用Route Handlers。当我运行npm run build命令时,它工作得很好,但当我部署到Vercel时,它显示以下错误:TypeError: fetch failed at Object.fetch (node:internal/deps/undici/undici:11457:11) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { cause: Error: connect ECONNREFUSED 127.0.0.1:3000 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 3000 } }Error: Command "npm run build" exited with 1有人能告诉我问题在哪里吗?浏览器控制台和生成命令中没有错误。下面是我的代码:

import React from 'react'
import { Search } from '@/components'

async function getJobs() {
  const res = await fetch('http://localhost:3000/api/jobs');
  if (!res.ok) {
    throw new Error("Couldn't fetch")
  }
  const data = await res.json();
  return data;
}

export default async function Home() {
  const jobs = await getJobs();

  return (
    <main className='px-6 md:px-8'>
      <Search />
      <pre>{ JSON.stringify(jobs, null, 2)}</pre>
      <span>{new Date().getTime()}</span>
    </main> 
  )
}

export const revalidate = 900;

字符串
任何帮助都是感激的。如果您需要有关此问题的更多信息,请随时询问。先谢了

vatpfxk5

vatpfxk51#

要解决这个问题,在项目根目录下添加一个.env文件,其中环境变量接收'http://localhost:3000'值,然后使用${process.env.NAME_OF_YOUR_ENV_VARIABLE}/api/jobs导入到fetch url。然后转到vercel中的 Jmeter 板,并将NAME_OF_YOUR_ENV_VARIABLE的值设置为vercel给出的deploy的基本url。

相关问题