Создание запроса put api с использованием Redux - PullRequest
0 голосов
/ 04 августа 2020

Я использую стек MERN и Redux. Мне сложно создать api и действие для обновления MongoDb. У меня две модели, я хочу найти одну модель по идентификатору, а затем обновить ее с помощью объекта другой модели, переданной в. Это то, что у меня есть для моего api и действий. Может ли кто-нибудь дать мне совет о том, как завершить sh это и как передать комментарий для добавления в api? Когда я тестирую это на Postman, он говорит, что он сработал, но объект не возвращается, когда я использую идентификатор в URL-адресе. Я также изменил res. json (subject) на res.send ("Put req success"), но этот текст тоже не был показан. ПОЖАЛУЙСТА ПОМОГИ! : (

api

subjectRouter.put("/subject/:_id", (req, res) => {
  Subject.findById(req.params._id, (err, subject) => {
    if (err) {
      res.send(err);
    }
    // what goes here to update the subject?
    // the propery to be updated is 'comments'
    // which is an array of comment objects
    console.log(subject.json);
    Subject.updateOne()
    res.json(subject);
  });
});

действие

export const updateSubject = () => (dispatch) => {
  console.log("updateSubject called");
  fetch("/api/subjects/Subject/:_id")
    .then((res) => res.json())
    .then((subject) =>
      dispatch({
        type: UPDATE_SUBJECT,
        subjects: subject,
      })
    );
};

1 Ответ

0 голосов
/ 04 августа 2020

кажется, что api принимает _id как параметр, но вы не передали его в вызове выборки, попробуйте это:

export const updateSubject = (id) => (dispatch) => {
  console.log("updateSubject called");
  fetch(`/api/subjects/Subject/${id}`)
    .then((res) => res.json())
    .then((subject) =>
      dispatch({
        type: UPDATE_SUBJECT,
        subjects: subject,
      })
    );
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...