Как ПОЛУЧИТЬ элемент, только что созданный СООБЩЕНИЕМ

#javascript #vue.js #axios

Вопрос:

Мне успешно удалось получить данные с помощью axios, теперь мне нужно получить данные с помощью Axios, которые были только что созданы методом POST. Вот мой код:

   data() {
    return {
      showModal: false,
      info: null,
      percentage: 0,
      selected_item: {
        id: 0,
        bill_number: 0,
        date: "",
        user_id: 0,
      },
    };
  },
 
     getNewDeal() {
      axios.post("http://localhost:8080/bills", {
        bill_number: 108,
        date: "",
        user_id: 7,
      });
      axios
        .get("http://localhost:8080/bills")
        .then((response) => (this.info = response.data._embedded.bills));
      this.info[this.info.length - 1].id = this.selected_item.id;
      console.log(this.selected_item.id);
    },
 

консоль.журнал(this.selected_item.id); возвращает 0 он должен возвращать что-то вроде 69843, идентификатор генерируется автоматически.

Ответ №1:

Ваш вызов api POST должен создать элемент, а затем вернуть идентификатор вновь созданного элемента. Затем вы можете сделать следующее.

 getNewDeal() {
    axios.post("http://localhost:8080/bills", {
      bill_number: 108,
      date: "",
      user_id: 7,
    }).then((response) => { // This response should have the ID of the newly created item, this should be set in the POST api call after item create.
      this.selected_item.id = response.data.id // I dont know your response object but get the ID from the response.
      axios
        .get("http://localhost:8080/bills")
        .then((response) => {
          this.info = response.data._embedded.bills;
          this.info[this.info.length - 1].id = this.selected_item.id;
          console.log(this.selected_item.id);
        });
    })
  }

 

Я также думаю, что у вас должен быть вызов GET для одного элемента, если все, что вам нужно, — это одна строка. http://localhost:8080/bills/{id}

Комментарии:

1. Извините, но я немного новичок в том, что представляет response .id, поскольку объект в моем API имеет 4 значения: идентификатор(который генерируется автоматически), номер счета, дата и идентификатор пользователя. Если я попробую использовать точный код, который вы мне дали, в журнале консоли будет указано «не определено». Кроме того, я получил бы только один предмет, но я не знаю его идентификатора, поэтому я не знаю, какой идентификатор получить.

2. Что вы получаете, когда получаете ответ журнала консоли после запроса post?

3. Я получил весь объект, похоже, запрос POST прошел успешно!, Но когда я печатаю идентификатор позже, он говорит, что он не определен. « данные: Объект { идентификатор: 667005, номер счета: 7, идентификатор пользователя: 777777, … } «

4. В точном ответе есть текст объекта?

5. хорошо, я решил эту проблему, мне нужно добавить данные перед идентификатором, поэтому все выглядит так this.selected_item.id = response.data.id, отредактируйте свой ответ, чтобы я мог его одобрить, tnx! И да, в ответе есть больше объектов, которые я только что скопировал, я думаю, что это было бы полезно.