Я создаю свой собственный метод PUT с использованием ресурса Angular $. Но когда я пытаюсь использовать равный URL REST в NodeJs, он говорит, что adreess, которую я отправил, не найден.
Вот моя фабрика:
(function (angular)
{
angular.module('projekat.resource',['ngResource'])
.factory('ProjekatEntry', ["$resource", function($resource)
{
var ProjEntry = $resource('/api/projekat/:_id',
{_id:'@_id'},
{
obrisiKorisnika:
{
method: 'PUT',
url: 'api/projekat/:_id/:korId'
}
});
return ProjEntry;
}]);
}(angular));
Вот мой угловой код:
$scope.obrisiUsera = function (korisnik, index)
{
$scope.projUser.$obrisiKorisnika( {'korId': korisnik._id});
$scope.projUser.korisnici.splice(index, 1);
$scope.korEntries.push(korisnik);
}
И вот мой маршрутизатор:
.put('/:id/:korId', function(req, res, next) {
console.log("dasdasasdasds");
Korisnik.findOne({
"_id": req.params.korId
}, function(err, korisnik) {
if (err)
{
console.log(err);
next(err);
}
Korisnik.findByIdAndUpdate(korisnik._id, {$pull:{"projekti":req.params.id}}, function (err)
{
if(err)
{
console.log(err);
next(err);
}
});
Projekat.findByIdAndUpdate(req.params.id, {$pull:{"korisnici":korisnik._id}}, function (err, entry) {
if (err)
{
console.log(err);
next(err);
}
res.json(entry);
});
});
})
Но я думаю, что серверная сторона не проблема, потому что она никогда не попадает на сервер, вот почему ошибка говорит:
PUT http://localhost: 8080/slickTask/api/projekat/5744b8802d28307020d8cc40/5744ba262d28307020d8cc4c 404 (не найдено)
Мои маршрутизаторы в порядке, все работает сейчас, POST, PUT, GET и т.д., Но когда я попытался использовать PUT-метод с другим параметром, он не ударил мой URL-адрес на стороне сервера.
В конечном итоге я нашел, в чем проблема. URL-адрес PUT в методе фабричной ProjekatEntry должен быть
url: '/api/projekat/: _ id/: korId'
с косой чертой в начале URL-адреса. Вот почему серверная сторона никогда не попадала.