Я создаю операции crud для функции небольшого веб-сайта, используя стек MEAN (angularjs).Ставка представляет собой объект с ключом Vendor, который содержит массив объектов, являющихся поставщиками, и их атрибуты, например:
"Vendor" : [
{name: ted,
age: 12}
]
Когда я пытаюсь использовать функцию удаления, я получаю сообщение об ошибке: MongooseError: Callbackдолжен быть функцией, получил значение true.
служба на стороне клиента:
function removeBidMeta(V, bidId) {
console.log('client api');
var url = "/api/remove-bid-meta/" + bidId;
return $http.put(url, V)
.then(function (response) {
return response.data;
});
}
служба на стороне сервера:
function removeBidMeta(req, res) {
console.log("server side service");
var VendorToRemove = req.body; //vendor to remove is a specific vendor
console.log(VendorToRemove);
bidModel
.removeVendor(VendorToRemove, req.params.bidId)
.then(function (VendorToRemove) {
console.log(VendorToRemove);
res.send(VendorToRemove);
}, function (err) {
console.log("error");
res.send(err);
});
}
модель:
function removeVendor(VendorToRemove, bidId) {
return(
bidModel.findOneAndUpdate(
{ "_id": bidId },
{ "$pull": { "Vendor": {"vName": VendorToRemove.vName, } } },
{multi: true}
)
);
}
Застрял в этом, был бы признателен за любые рекомендации, а не только ответы.Спасибо, ребята.
(что он должен делать: страница с поставщиками отображается в DOM в виде списка с кнопками удаления с помощью ng-repeat. Если вы хотите удалить контроллер, передает объект vendor в API.API добирается до модели, так что конкретный поставщик ищется и удаляется. Я ищу только по имени, потому что имена не должны повторяться.)
фрагмент кода контроллера на тот случай, если кому-то будет интересно:
model.removeV = function(V) {
var specificVendor = V;
bidService.removeBidMeta(V, $routeParams.bidNumber)
.then(function (V) {
$location.url('/view-bid/' + $routeParams.bidNumber);
});
};