Я пытаюсь обновить схему, используя форму, однако, как на app.put, так и на app.post (который я видел как возможное решение), я получаюЭкспресс + Угловой маршрут обновления: Ошибка: не может PUT
PUT https://myapp-demo.herokuapp.com/api/events/5523da4d97c5000300f6e713 404 (Not Found)
и ошибка от АЯКС обратного вызова
Error: Cannot PUT /api/events/5523da4d97c5000300f6e713
на стороне клиента, я делаю этот запрос:
$scope.saveEvent = function(id) {
$http.put('../api/events/' + id, $scope.formData)
.success(function (data) {
$scope.events = data;
})
.error(function(data) {
console.log('Error: ' + data);
})
};
в экспресс-маршрутах, я т его:
app.put('../api/events/:id', function (req, res){
var user = req.user;
var id = req.params.id;
var update = {
$set: {
title: req.body.title,
description: req.body.description,
}
};
Event.findByIdAndUpdate(id, update, function (err, event) {
if(!event) {
res.statusCode = 404;
return res.send({ error: 'Not found' });
}
console.log("event updated");
Event.find(function(err, events) {
if (err){
res.send(err)
};
res.json(events);
});
});
});
Я попытался пройти event._id иначе, используя req.params.id и передавая идентификатор с формой, как req.body.id, все это приводит к тому же результату. Я также читал о создании скрытого ввода, чтобы помочь переопределить метод-метод для переопределения методов формы. Однако, это не помогло.
<input type="hidden" name="_method" value="put">
<md-button class="md-raised md-primary" ng-click="saveEvent(eventId)">Save</md-button>
UPDATE
Действительно, первоначальный proble был в моих путах маршрута. Я нашел новую проблему сейчас. Когда я пытаюсь обновить его снова, я получаю
Error: Object {error: "Not found"}
Это происходит даже после обновления страницы или перезапуска сервера.
Спасибо большое, что помогли! – vitalym