Как мне предотвратить ошибку ECONNREFUSED при развертывании приложения NEXT.js на Vercel?

Я пытаюсь развернуть приложение личного портфолио, которое использует внутренние конечные точки API для запроса БД. Во время развертывания я получаю следующую ошибку: FetchError: запрос на http: // localhost: 3000 / api / projects / all не выполнен, причина: подключить ECONNREFUSED 127.0.0.1:3000

Приложение хорошо работает во время локального сеанса, но после некоторого исследования я понял, что использование fetch внутри getStaticProps неверно. Однако я не могу придумать исправление. Следует ли мне забыть о конечной точке и запрашивать БД из getStaticProps или мне следует обновить URL-адрес, чтобы он отражал предоставленный Vercel? Я весь день хожу по кругу и буду благодарен за любые советы, спасибо!

// index.js:

export async function getStaticProps() {
  
  const resProjects = await fetch('http://localhost:3000/api/projects/all');
  const projects: Project[] = await resProjects.json();

  const resSkills = await fetch('http://localhost:3000/api/skills/all');
  const skills: Skills[] = await resSkills.json();

  return {
    props: {
      projects,
      skills,
    }
  }
}

// API / проекты / все

export default async (req: NextApiRequest, res: NextApiResponse) => {
  const { method } = req;

  if (method === "GET") {
    try {
      const allProjects = await prisma.project.findMany();
      res.status(200).json({ projects: allProjects });
    } catch (e) {
      res.status(500).json({ error: e });
    }
  } else {
    res.setHeader('Allow', ['GET'])
    res.status(405).end(`Method ${method} Not Allowed`)
  }
}

person user1576998    schedule 12.04.2021    source источник
comment
Дело не в том, что вы не можете использовать fetch, просто вы не должны извлекать оттуда внутренний маршрут API. Следующий ответ должен дать больше информации об ошибке nextjs при создании рабочей среды для статического веб-сайта. Просто запросите базу данных прямо из getStaticProps.   -  person juliomalves    schedule 13.04.2021
comment
Спасибо за это. Ценить это! Все заработало.   -  person user1576998    schedule 14.04.2021