Когда я использую внутренний маршрут API в getInitialProps, я получаю эту ошибку.
Error: read ECONNRESET
at _errnoException (util.js:1003:13)
at TCP.onread (net.js:620:25)
static async getInitialProps({ reduxStore }) {
const res = await Axios.get("/api/recent/1");
await reduxStore.dispatch({ type: LIST, payload: res.data });
return { }
}
Но если я использую внешний сервер API, он работает нормально.
static async getInitialProps({ reduxStore }) {
const res = await Axios.get("http://abc.herokuapp.com/api/recent/1");
await reduxStore.dispatch({ type: LIST, payload: res.data });
return { }
}
Если я вызываю API в componentDidMount, он отлично работает в обоих случаях, но в getinitialProps я не мог обрабатывать внутренний API, который находится на моем сервере Express.
Пожалуйста помоги! Есть ли проблема в моем коде? Я ищу за последние пару часов, но не могу решить эту проблему.
Возможный дубликат Next.js - Ошибка: поддерживаются только абсолютные URL
Вы нашли какое-нибудь решение ??



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете извлечь baseUrl из запроса.
async getInitialProps({ req }) {
const protocol = req.headers['x-forwarded-proto'] || 'http'
const baseUrl = req ? `${protocol}://${req.headers.host}` : ''
const res = await fetch(baseUrl + '/api/recent/1')
...
}
URL-адреса в getInitialProps должны быть абсолютными, поскольку они запускаются с сервера. Вы должны включить имя хоста в путь.