Boa tarde! Meu problema é simples, ao tentar puxar o conteudo do formulário, para o bodyParser, ele está vindo vazio. Em seguida, teoricamente eu enviaria pro banco.
Coloquei um console.log() logo embaixo do produto receber o req.body;, e após preencher o formulário e enviar, é impresso no console apenas: {} Estou interpretando como um JSON vazio, e não consigo enxergar o porque de estar vazio.
Segue códigos:
produto.js
module.exports = function(app) {
var listaProdutos = function(req, res) {
var connection = app.infra.connectionFactory();
var produtosDAO = new app.infra.ProdutosDAO(connection);
produtosDAO.lista(function(err,results) {
res.render('produtos/lista',{lista:results});
});
connection.end();
}
app.get('/produtos', listaProdutos);
app.get('/produtos/form', function(req, res) {
res.render('produtos/form');
});
app.post('/produtos/salva', function(req,res) {
var produto = req.body;
console.log(produto);
var connection = app.infra.connectionFactory();
var produtosDAO = new app.infra.ProdutosDAO(connection);
produtosDAO.salva(produto,function(erros, resultados) {
listaProdutos(req,res);
});
});
}
ProdutosDAO.js
function ProdutosDAO(connection) {
this._connection = connection;
}
ProdutosDAO.prototype.lista = function(callback) {
this._connection.query('select * from livros', callback);
}
ProdutosDAO.prototype.salva = function(produto,callback){
this._connection.query('insert into livros set ?',produto,callback);
}
module.exports = function() {
return ProdutosDAO;
}
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({extended: true}));
load('routes', {cwd: 'app'})
.then('infra')
.into(app);
return app;
}