Запрос на обновление с помощью ExpressJS / MySQL

#express

#экспресс

Вопрос:

У меня проблема с моим запросом на обновление. Это работает, когда я создаю или получаю пользователя..

 update(id) {
    return http.put(`/users/${id}`);
  }
 

//

 router.put("/:id", users.update);
 

//

 exports.update = (req, res) => {
  const user = {
    id: req.params.id,
     name:req.body.name,
   ...
    
  };

  

    User.update({where: {
      id: req.params.id
    }} , user).then(
    () => {
      res.status(201).json({
        message: 'Thing updated successfully!'
      });
    }
  ).catch(
    (error) => {
      res.status(400).json({
        message:user,
        error: error
      });
    }
  ); 
  
};
 

//
Почтальон

ПОМЕСТИТЕ http://localhost:8081/api/users/2

ТЕЛО {

«имя»: «h2@gmail.com »

}

{ «сообщение»: { «идентификатор»: «2», «имя»: «h2@gmail.com » }, «ошибка»: { «Сгенерированное сообщение»: false, «код»: «ОШИБКА УТВЕРЖДЕНИЯ», «ожидаемый»: true, «оператор»: «==» } }

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

1. попробуйте этот User.update(user,{where: { id: req.params.id }})

2. Хорошо, я отправляю его в качестве ответа, пожалуйста, примите его

Ответ №1:

Согласно sequilize docs, первым параметром должен быть объект для обновления, а вторым параметром должно быть условие.

 User.update(user,{where: { id: req.params.id }})