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