Я создал базовый API REST в Node js и Mongodb. Я хочу обновить значение, используя Find с пользовательским параметром, таким как name
. Я могу получить пользователя, используя метод Custom GET, но он не работает в методе PUT / POST.
Вот схема:
{
name:String,
value:Number
}
Вот код:
// v1 / api / users /: name -Update
api.put('/users/:name',(req,res)=>{
Users.find({name:req.params.name},(err,user)=>{
if(err){
res.send(err);
}
console.log(req.body.name);
console.log(req.body.value);
user.value= req.body.value;
user.save(err => {
if(err){
res.send(err);
}
res.json({message:'Updated '});
});
});
});
Теперь, например, если mongoDb
имеет "name":"sam"
, и я использую `localhost: 3000 / v1 / api / users / sam`` и body в качестве
1. {"value":300}
, я получаю ошибку
Невозможно установить свойство 'name' из неопределенного
2. Когда я зарегистрировал 1-ю ошибку, я узнал, что отсутствие определения имени дает мне ошибку. поэтому я использовал это {"name":"sam","value":300}
и теперь ошибка пользовательская. сохранить не функция.
Обновление с использованием FindById
работает, но в случае клиента пользователь не может получить идентификатор из базы данных, поэтому я попробовал описанный выше метод.
Пожалуйста, помогите мне