Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Objeto json vazio

Mesmo após instalar o bodyParser, quando executa o Console.log(produto) é exibido um json vazio.

Express.js

var express = require("express");
var load = require("express-load");
var bodyParser = require('body-parser');

module.exports = function(){
    var app = express();
    app.set('view engine','ejs');
    app.set('views','./app/views');

    app.use(bodyParser.urlencoded({extend: true}));

    load('routes', {cwd: 'app'})//cwd: onde pesquisar a pasta routes
        .then('infra')
        .then('DAO')
        .into(app)

    return app;
}

Produtos.js



module.exports = function(app) {
    app.get("/produtos",function(req, res) {

        var connection = app.infra.ConnectionFactory();
        var produtosBanco = new app.DAO.ProdutoDAO(connection);

        produtosBanco.recuperaLivros(function(err, results){
            res.render('produtos/lista', {lista:results});
        });

        connection.end();

    });

    app.get('/produtos/cadastrar', function (req, res) {
            console.log('recebendo get em produtos/cadastrar!');
            res.render('produtos/cadastroProdutos');
    });
    app.post('/produtos/cadastrar', function(req, res){
        var produto = req.body;
        console.log(produto);
        res.render('produtos/cadastroProdutos');      
      });
}

Console

[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] starting `node app`
body-parser deprecated undefined extended: provide extended option config\express.js:10:24
servidor rodando
{}
{}
4 respostas

Fala Tauan, tudo bom?

o seu extend deveria ser extended:

app.use(bodyParser.urlencoded({extend: true})); // altera essa linha 

Acredito que esse não é o problema, pois a linha foi alterada e o 'erro' continua ocorrendo.

Sobe o código no github para eu dar uma olhada /o

solução!

Cara, eu baixei o projeto da aula 3 aqui e dei uma comparada nos arquivos Express.js e o form.ejs.

No express.js, percebi que no require dos módulos express e express-load eu estava usando o aspas duplas. Mudei para aspas simples.

No form.ejs eu não notei muita diferença porém copiei o código html para o meu arquivo. Após essas duas alterações o json do req.body passou a exibir os dados inseridos na tela.

Acredito que tenha feito algo errado no código HTML, mas não imagino o que seja. No fim das contas, já estou com meu projeto funcionando normalmente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software