Mudar a Camada de Visão
Adicionamos mais um botão na tela da listagem dos dados. No arquivo index.html, na seção dos botões, inserimos a seguinte codificação:
...
<div class="btn-group" ng-hide="nome == ''">
<a class="btn btn-large" ng-click="excluir()">Excluir</a>
</div>
...
Este botão será visível somente quando um livro for selecionado na listagem. Ao ser pressionado, chama a função excluir do arquivo controller.js. Adicionamos dentro da ListaCtrl (que controla a janela de listagem) uma função com a seguinte codificação:
function ListaCtrl($scope, $http) {
...
$scope.excluir = function() {
if ($scope.nome != '') {
$http.delete('/excluir/' + $scope.nome)
.success(function(data) {
if (data == 'err') {
alert("Houston, temos um problema");
} else {
alert("Livro Excluído...");
}
document.location.reload(true);
})
}
}
}
Ao ser chamada, esta função executa o método delete da variável $http no qual é passado (como no processo da pesquisa da alteração) um caminho com o nome do livro selecionado. Verificamos a resposta se obteve ou não sucesso para eliminar o livro. O comando final reload é usado para reprocessar a página e fazer desaparecer da listagem o livro excluído.Mudar a Camada de Dados
No arquivo funções do banco, adicionamos a função excluir (abaixo da função modificar):
exports.excluir = function (req, res) {
livroModel.remove({nome: req.params.nom}).exec(function(err) {
if (err) {
callback(err);
} else {
res.send();
}
});
}
O comando remove do banco é usado para eliminar um registro com base nos parâmetros passados, funciona de mesma forma como o comando find já visto.Mudar a Camada do Servidor
Adicionamos ao servidor a nova rota para exclusão:
app.delete('/excluir/:nom', routes.excluir);
E agora nos resta adicionar esse caminho no arquivo de rotas para disparar a função do banco, realizado através da seguinte codificação:exports.excluir = function(req, res) {
livro.excluir(req, res);
};
Pronto, observamos que a exclusão é o mais simples dos processos, assim, concluímos a letra D do nosso CRUD e com isso finalizamos nosso projeto. Espero que todas essas lições possam ser bem proveitosas para ajudar a divulgar a arquitetura REST.Obrigado e até a próxima
Fernando Anselmo
0 comentários:
Postar um comentário