Axios PUT не обновляет данные - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть VueJS приложение, которое использует Axios до PUT объект на сервере.Цель состоит в том, чтобы обновить этот объект в базе данных.Объект уже существует в базе данных, но объект, отправленный обратно с PUT, имеет некоторые измененные данные.Эти изменения - то, что я хочу обновить в базе данных.Приложение работает без сообщений об ошибках, но данные в базе данных никогда не обновляются.

Клиентская сторона

onUpload(): void {
    this.chosenRoute.name = this.routeName;
    this.chosenRoute.text.paragraphs[0] = this.routeDescription;
    this.chosenRoute.text.preamble = this.preamble;
    if(this.activity != "") this.chosenRoute.activity = this.activity;

    axios.put('http://localhost:8080/route/' + this.selectedRoute, JSON.stringify(this.chosenRoute), {
      onUploadProgress: uploadEvent => {
        console.log('Upload Progress' + Math.round(uploadEvent.loaded / uploadEvent.total) * 100 + " %");
      }
    }).then(res => {
      console.log(res);
    });
  }

Серверная сторона

app.put('/route/:id', function(req, res, next) {
    const routeId = req.params.id;
    res.set("Access-Control-Allow-Origin", "*");
    Route.update({'_id':routeId}, req.body, function(result) {
        return res.send(result);
    });
});

1 Ответ

0 голосов
/ 23 ноября 2018

Я думаю, что вы не должны использовать JSON.stringify, поэтому ваш код должен выглядеть так:

axios.put(`http://localhost:8080/route/${this.selectedRoute}`, this.chosenRoute, {
  onUploadProgress: uploadEvent => {
    console.log('Upload Progress' + Math.round(uploadEvent.loaded / uploadEvent.total) * 100 + " %");
  }
}).then(res => {
  console.log(res);
});

Надеюсь, это поможет вам!

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