Під час розгортання проекту на платформі Vercel можуть виникати різноманітні проблеми, серед яких зустрічаються і помилки зі з’єднанням. Одна з таких помилок може мати наступний вигляд:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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 } |
Ця помилка може виникнути під час спроби доступу до localhost на порту 3000. Очевидно, що Vercel не може отримати доступ до локального сервера під час розгортання. Це може виникнути через неправильно вказаний URL.
Щоб виправити цю помилку, необхідно змінити URL запиту таким чином, щоб він вказував на правильний сервер. Найпростіший спосіб це зробити – замінити localhost на адресу вашого деплоїться додатку на Vercel. Тобто, замість http://localhost:3000/api/event
використовуйте адресу вашого деплоїться додатку, наприклад, https://your-app.vercel.app/api/event
.
Виправлений код буде виглядати так:
1 2 3 4 5 6 7 |
async function getData(): Promise<Events[]> { const data = await fetch(`https://your-app.vercel.app/api/event`, { cache: "no-cache", }).then((res) => res.json()); return data; } |
Після зміни URL у виклику функції fetch, помилка зі з’єднанням під час розгортання на Vercel більше не буде виникати.