Percebi no vídeo da aula sobre Content Negotiation que o problema aconteceu com o instrutor e o vídeo foi editado. Após a edição do vídeo, a execução do cliente-android passou a funcionar como deveria. Pergunto: O que foi feito para mostrar o conteúdo correto? No meu, só mostra:
200
<Buffer 3c 68 74 6d 6c 3e 0a 20 20 20 20 3c 62 6f 64 79 3e 0a 20 20 20 20 20 20 20 20 3c 68 31 3e 4c 69 73 74 61 67 65 6d 20 64 65 20 50 72 6f 64 75 74 6f 73 ... >
mesmo eu tendo concatenado 'Corpo' à variável body, como fez o instrutor.
Os códigos estão assim:
/cliente-android.js
var http = require('http');
var configuracoes = {
hostname:'localhost',
port:3000,
path:'/produtos',
headers: {
'Accept':'application/json'
}
};
http.get(configuracoes, function(res) {
console.log(res.statusCode);
res.on('data',function(body){
console.log('Corpo:'+body);
});
});
e no produtos.js
module.exports = (app) => {
var listaProdutos = (req, res) => {
let cnn = app.infra.connectionFactory();
let produtosDAO = new app.infra.ProdutosDAO(cnn);
produtosDAO.lista((erros, resultados) => {
res.format({
html: () => res.render('produtos/lista', {lista: resultados}),
json: () => res.json(resultados)
});
});
cnn.end();
}
app.get('/produtos', listaProdutos);
app.get('/produtos/form', (req, res) => {
res.render('produtos/form');
});
app.post('/produtos', (req, res) => {
let produto = req.body;
let cnn = app.infra.connectionFactory();
let produtosDAO = new app.infra.ProdutosDAO(cnn);
produtosDAO.salva(produto, (erros, resultados) => {
cnn.end();
res.redirect('/produtos');
});
});
}
Lembrando que o código utilizado nesta aula pelo instrutor está diferente daquele terminado na aula anterior.
O meu código está seguindo o da aula anterior, porém adaptado para arrow functions e utilizando o let no lugar do var em alguns locais para garantir a visibilidade das variáveis somente nos escopos onde foram declaradas.