Editando e Excluindo - NodeJS e Express (Parte 5)

Posted by uselessdev on 11/02/2017

Índice

E ai povo, tudo de boa?

No artigo anterior nós criamos nosso módel e fizemos os métodos pra adicionar uma tarefa, então agora nós precisamos editar e excluir nossas tarefas.

Rota

A primeira coisa que precisamos fazer é definir nossa rota pra atualizar o registro, então vamos adicionar em ./routes/index.js

1
2
3
...
app.post('/task/:id', app.constrollers.tasks.update)
...

Nossa rota já está definida, nosso acesso vai ser feito da seguinte maneira: http://localhost:3000/task/1, se você perceber bem, o :id é o nosso paramêtro na rota, feito isso, vamos criar nossa função de update.

update

No nosso controller ./controllers/tasks.js adicione o seguinte:

1
2
3
4
5
6
7
8
...
update: function (request, response) {
var id = request.params.id
var task = request.body
Task.update(id, task)
}
...

Por enquanto estamos recuperando nosso id e as informações da tarefa, agora vamos ao nosso model ./models/Task e adicionamos nosso método update:

1
2
3
4
5
6
7
8
9
10
function update (id, task) {
var index = tasks.data.findIndex(function (task) {
return task._id == id
})
tasks.data[index].title = task.title
tasks.data[index].status = task.status
return
}

Bem, explicando nossa função acima, primeito nós recuperamos o index logo depois definimos os valores pra tarefa que se encontra nesse index, e então retornamos.

Agora nosso controller precisamos de uma resposta então adicione o seguinte:

1
response.redirect('/')

Isso vai redirecionar pra rota /. Uma vez feito isso agora vamos excluir nosso registro.

Deletando

Da mesma forma que começamos nosso update faremos com nosso delete precisamos criar uma rota, então em ./routes/index adicione:

1
app.get('/task/:id', app.controllers.tasks.destroy)

Em nosso controller ./controllers/tasks.js:

1
2
3
4
5
destroy: function (request, response) {
Task.remove(request.params.id)
response.redirect('/')
}

No nosso controller nós chamamos a função do model que vai remover nosso registro, e logo depois redirecionamos, agora vamos ao nosso model pra criar essa função

1
2
3
4
5
6
7
function remove (id) {
tasks = tasks.data.filter(function (task) {
return task._id != id
})
return
}

E ai está nossa função de remover o registro.

Conclusão

Até aqui nós já temos uma api pequena pra listar, adicionar, editar e deletar nossos registros, até que funciona bem, porém se quisermos ter uma interface web pra lidar com esses dados sem a necessidade de criarmos outra aplicação, teremos que fazer umas alterações, e é isso que nós vamos fazer no próximo artigo.

Próximo: Trabalhando com Views - NodeJS e Express (parte 6)


Comentários: