#mongoose
Вопрос:
Я пытаюсь отредактировать количество повторений в сохраненном упражнении. Мне нужно уметь находить упражнение по любому из моих критериев (имя, повторения, вес, единица измерения, дата), но специально проверять его на повторениях. Мой статус ошибки catch 400 отображается в качестве ответа, но в терминале я получаю ошибку типа: Не удается прочитать свойство ‘__v’ неопределенного
В моей модели у меня есть
const replaceExercise = async(_id, name, reps, weight, unit, date) =gt;{ const result = await Exercise.replaceOne({_id: _id, name: name, reps: reps, weight: weight, unit: unit, date: date}); return result.nModifed;
В моем контроллере у меня есть
app.put('/exercises/:_id', (req, res) =gt; { exercises.replaceExercise(req.params._id, req.body.name, req.body.reps, req.body.weight, req.body.unit, req.body.date) .then(numUpdated =gt; { if (numUpdated === 1) { res.json({ _id: req.params._id, name: req.body.name, reps: req.body.reps, weight: req.body.weight, unit: req.query.unit, date: req.query.date }) } else { res.status(404).json({ Error: 'Resource not found' }); } }) .catch(error =gt; { console.error(error); res.status(400).json({ Error: 'Request failed' }); }); });
В ответе говорится:
HTTP/1.1 400 Bad Request X-Powered-By: Express Content-Type: application/json; charset=utf-8 Content-Length: 26 ETag: W/"1a-hLcQ5g1YcJZl0kNyfpzilydIpXU" Date: Fri, 03 Dec 2021 00:19:33 GMT Connection: close { "Error": "Request failed" }
Ошибка в терминале считывает
TypeError: Cannot read property '__v' of undefined at Function.replaceOne (D:Comp SciCS 290 Web DevelopmentAssignment 6REST APInode_modulesmongooselibmodel.js:3956:25) at Module.replaceExercise (file:///D:/Comp Sci/CS 290 Web Development/Assignment 6/REST API/exercises_model.mjs:36:35) at file:///D:/Comp Sci/CS 290 Web Development/Assignment 6/REST API/exercises_controller.mjs:51:15 at Layer.handle [as handle_request] (D:Comp SciCS 290 Web DevelopmentAssignment 6REST APInode_modulesexpresslibrouterlayer.js:95:5) at next (D:Comp SciCS 290 Web DevelopmentAssignment 6REST APInode_modulesexpresslibrouterroute.js:137:13) at Route.dispatch (D:Comp SciCS 290 Web DevelopmentAssignment 6REST APInode_modulesexpresslibrouterroute.js:112:3) at Layer.handle [as handle_request] (D:Comp SciCS 290 Web DevelopmentAssignment 6REST APInode_modulesexpresslibrouterlayer.js:95:5) at D:Comp SciCS 290 Web DevelopmentAssignment 6REST APInode_modulesexpresslibrouterindex.js:281:22 at param (D:Comp SciCS 290 Web DevelopmentAssignment 6REST APInode_modulesexpresslibrouterindex.js:354:14) at param (D:Comp SciCS 290 Web DevelopmentAssignment 6REST APInode_modulesexpresslibrouterindex.js:365:14)