Задать вопрос
@JusticeArt

Not found при PUT запросе в MEAN стеке?

Всем привет, осваиваю MEAN стек и бэкенд заодно. Столкнулся с проблемой обновления данных в БД.Сервер отвечает 404(Not Found). Думаю проблема в структуре PUT запроса, раньше не делал таких запросов.
AngularJS
constructor($http, $scope, socket) {
    this.$http = $http;
    this.socket = socket;

    $scope.$on('$destroy', function() {
      socket.unsyncUpdates('product');
    });
  }

 this.$http.put('/api/products/', product)
        .then(function(res){
          console.log('ok');
        })
        .catch(function(res){
          console.log('error');
        })

Express
export function upsert(req, res) {
  if(req.body._id) {
    Reflect.deleteProperty(req.body, '_id');
  }
  return Product.findOneAndUpdate({_id: req.params.id}, req.body, {new: true, upsert: true, setDefaultsOnInsert: true, runValidators: true}).exec()

    .then(respondWithResult(res))
    .catch(handleError(res));
}

Router
router.put('/:id', controller.upsert);
На стороне сервера думаю все ок, product это объект в котором есть свойство которое меняется.
  • Вопрос задан
  • 107 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@RidgeA
Вот это на сервере:
router.put('/:id', controller.upsert);

не соответствует тому, куда запрос отправляется.
this.$http.put('/api/products/', product)
Ответ написан
@JusticeArt Автор вопроса
нужно было указать в put запросе id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы