当我打电话给" get" 函数将联系人ID作为参数传递时,它会正常工作,但是当我调用"删除&#34时; 函数找不到路由,并在控制台中返回错误消息
控制台浏览器:
"DELETE http: // localhost: 3000 / contacts? Id = 1 404 (Not Found) Object config: data: "Cannot DELETE /contatos?id=1↵" headers :(name) status:404 statusText:"Not Found"
//routes\contato.js
module.exports = function(app) {
var controller = app.controllers.contato;
app.route('/contatos/:id')
.get(controller.obtemContato)
.delete(controller.removerContato);
};
//controllers\contato.js
module.exports = function(app) {
var controller = {}
var contatos = [
{_id: 1, nome: 'Contato Emplo 1',
email: 'cont43343@empresa.com.br'},
{_id: 2, nome: 'Contato Exemplo 2',
email: 'cont2@empresa.com.br'},
{_id: 3, nome: 'Contato Exemplo 3',
email: 'cont3@empresa.com.br'}
];
controller.listaContatos = function(req, res) {
res.json(contatos);
}
controller.obtemContato = function(req, res) {
console.log(req.params.id);
var idContato = req.params.id;
var contato = contatos.filter(function(contato) {
return contato._id == idContato;
})[0];
contato ?
res.json(contato) :
res.status(404).send('Contato não encontrado');
}
controller.removerContato = function(req, res) {
console.log('TESTE REMOVER');
var idContato = req.params.id;
contatos = contatos.filter(function(contato) {
return contato._id != idContato;
});
res.send(204).end();
console.log('API: removeContato: ' + idContato);
}
return controller;
}
// angular controller
angular.module('contatooh').controller('ContatosController',
function($scope, $resource) {
$scope.contatos = [];
$scope.filtro = '';
var Contato = $resource('/contatos');
$scope.init = function () {
buscaContatos();
}
function buscaContatos() {
Contato.query(
function(contatos) {
$scope.contatos = contatos;
},
function(erro) {
console.log("Não foi possível obter a lista de contatos");
console.log(erro);
}
);
}
$scope.remove = function(contato) {
Contato.delete({id: contato._id},
buscaContatos,
function(erro) {
console.log('Não foi possível remover o contato');
console.log(erro);
}
);
};
$scope.init();
});
答案 0 :(得分:1)
您好像没有向相应的端点发出请求。您似乎正在尝试向DELETE
发出/contatos?id=1
请求,并且您的路由已配置为/contatos/:id
。尝试通过更改DELETE
uri向/contatos/:id
发出$resource
个请求:
var Contato = $resource('/contatos/:id');