У меня есть приложение MERN, которое использует комбинацию:
- Async / Await с Ax ios и
- Redux
для управлять потоком данных во всем приложении. Redux в основном используется для входа в систему + авторизации (по этим правилам) . Несколько других таблиц, которые совместно используются на многих страницах в моем приложении, выбираются с помощью redux и доступны через reduxState. Однако, поскольку большинство маршрутов в моем приложении MERN не требуют общего состояния, я просто использую ax ios для получения большей части данных из моей базы данных mon go.
В настоящее время у меня проблема только с выборками из-за избыточности, как для входа в систему / авторизации, так и для всех других таблиц, извлекаемых через избыточную передачу. В моей консоли я получаю следующие сообщения об ошибках приведения:
API узла для приложения обслуживается через порт 8080, и если я скопирую этот URL, изменим порт и вставлю http://localhost:8080/api/cbb/teams/list
непосредственно в мой браузер chrome, он вернет данные, как я и ожидал. Так что я считаю, что есть проблема с портом 3000 / 8080. Порт 3000 - это место, где обслуживается клиентская часть приложения (я верю), и я понимаю, почему redux выполняет запрос GET для порта: 3000.
Мой вопрос заключается в том, что я могу сделать, чтобы решить / отладить это, чтобы мои выборки из редукса снова заработали? Я предполагаю, что мне просто нужно «указать» выборки из резервной копии на правильный порт, но я не уверен, как это сделать ... Любые мысли о том, почему это может происходить, будут высоко оценены.
Спасибо,
Также, если это будет полезно, я могу поделиться настройкой нескольких других файлов:
- store. js
- groups-action . js
- команд-редукторов. js
- любых других соответствующих таблиц ...
Редактировать 1 : вдоль строки этого вопроса , мой файл client
(со всем моим внешним кодом) находится внутри каталога для моего API узла. В моем файле client/package.json
есть строка с "proxy": "http://localhost:8080",
Edit 2 : Вот основная функция из teams-action
, которая создает URL-адрес, который затем выбирается:
export function fetchTeams(team, conference) {
return dispatch => {
let url = '/api/cbb/teams';
if (team) { url += '/team/' + team; }
else if (conference) { url += '/conference/' + conference; }
else { url += '/list'; }
console.log('fetchTeams url: ', url);
dispatch(fetchSportsDataBegin());
return fetch(url)
.then(handleErrors)
.then(res => res.json())
.then(json => {
dispatch(fetchSportsDataSuccess(json));
return json;
})
.catch(error => dispatch(fetchSportsDataError(error)));
};
}
fetchCBBTeams
вызывается из моего основного компонента контейнера для страницы. Распечатанный URL-адрес просто /api/cbb/teams/list
, так как я намеренно называю его без параметров