1
resposta

Como formatar a estrutura de dados usando JSON

Olá Pessoal,

Durante a vídeo aula, o exemplo do Content Negociation foi bem bacana. Porém tentei fazer um teste para gerar uma estrutura em XML e gerou o seguinte erro:

E:\Alura\NodeJs\Casa do código\config\express.js:13 app.use(bodyParser.xml()); ^

TypeError: bodyParser.xml is not a function at module.exports (E:\Alura\NodeJs\Casa do código\config\express.js:13:24) at Object. (E:\Alura\NodeJs\Casa do código\app.js:1:100) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Function.Module.runMain (module.js:441:10) at startup (node.js:139:18) at node.js:968:3

Para isso, utilizei os seguintes métodos:

No produtos.js

produtosDAO.lista(function(err, results){
            res.format({
                html: function(){
                    res.render('produtos/lista', {lista: results});//renderisa a página produtos com a lista de produtos.
                },
                json: function(){
                    res.json(results);
                },
                xml: function(){
                    res.xml(results);
                }
            });
        });

Daí usei no cliente-android.js o 'application/xml' e no express.js utilizei o :

app.use(bodyParser.xml());

Quem souber por favor coloque aqui um exemplo.

Valeu!

1 resposta

Oi Robson, o body-parser não suporta a geração nem consumo de xml. Você pode usar a lib xml(https://www.npmjs.com/package/xml). E aí, no express, você indicar que o content-type da resposta é xml da seguinte forma: response.set('Content-Type', 'text/xml');.