Извлечение одного документа из коллекции базы данных Монго - PullRequest
0 голосов
/ 16 февраля 2019

Как я могу вытащить один документ из коллекции Монго с помощью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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...