Как я могу вытащить один документ из коллекции Монго с помощьюact / redux / express?
У меня есть рабочее приложение, где я могу получить коллекцию записей из моей mongoDB,Тем не менее, я хочу иметь возможность получить одну запись из коллекции на основе идентификатора параметра, который у меня есть в Маршруте, настроенном реагирующим маршрутизатором.
Я пробовал Model.find({ _id: req.params.id})
и Model.findById({ _id: req.params.id})
.Я также искал другие сообщения в отношении этого, но я все еще испытываю личное разъединение, так как я только что вошел в бэкэнд вещей.
Маршруты реакции на стороне клиента:
<Router history={history}>
<div className="container">
<Header />
<Route exact path="/" component={LandingPage} />
<Route exact path="/budgets" component={Dashboard} />
<Route exact path="/budgets/new" component={BudgetForm} />
<Route exact path="/budgets/edit/:id" component={BudgetEdit} />
<Route exact path="/budgets/delete/:id" component={BudgetDelete} />
<Route exact path="/budgets/:id" component={BudgetShow} />
</div>
</Router>
Создатель действия:
export const fetchBudget = (budgetId) => async dispatch => {
const res = await axios.get(`/api/budgets/${budgetId}`);
dispatch({ type: FETCH_BUDGET, payload: res.data });
}
Редуктор:
const initialState = {
budgetList: [].
budget: {}
}
export default (state = initialState, action) => {
switch (action.type) {
case FETCH_BUDGETS:
return { ...state, budgetList: action.payload };
case FETCH_BUDGET:
return { ...state, budget: action.payload };
default:
return state;
}
}
Экспресс-маршрут:
app.get('/api/budgets/:budgetId', requireLogin, async (req, res) => {
const budget = await Budget.findById({ _id: req.params.budgetId });
res.status(200).json(budget);
});
Ожидаемые результаты:
Я ожидаю, что когда я нажму на нужный документ, он возьмет params.id из URL, передаст егомоему создателю действий, который затем запускает его для выражения, который затем использует этот params.id, чтобы найти его в моей БД, таким образом возвращая его как res.data в полезной нагрузке моих создателей действий, позволяя мне использовать данные в записи, которая являетсявернулся.
Фактические результаты:
Всякий раз, когда я запускаю своего создателя действия и делаю запрос, я получаю:
GET http://localhost:3001/api/budgets/5c66716c1ed9920920123a3d 404 (Not Found)
Uncaught (in promise) Error: Request failed with status code 404
Репо: https://github.com/laere/budgety
РЕДАКТИРОВАТЬ: Сделал больше копать, нашел аналогичный проект для разработки с использованием точных рамокnd особенности.Обновленный код и репо, по-прежнему возникают те же проблемы с изменениями.
РЕДАКТИРОВАТЬ: ВОПРОС БЫЛ РЕШЕН, ПРОЧИТАЙТЕ НИЖЕ, ЕСЛИ КУРЬЕР
Яиспользуя промежуточное ПО http прокси.Я забыл добавить маршрут API в мой файл прокси для маршрута, который я использовал.Надеюсь, кто-то узнает из этого поста и мою ошибку noobie.