Apos instalar o body-parser o JSON não é exibido. Continua aparecendendo a mensagem Cannot POST /produtos/salva
module.exports = function(app){
app.get('/produtos',function(req,res){
var connection = app.infra.connectionFactory();
var produtosBanco = new app.infra.ProdutosDAO(connection);
produtosBanco.lista(function(erros,resultados){
res.render('produtos/lista',{lista:resultados});
});
connection.end();
});
app.get('/produtos/form',function(req,res){
//var produto = req.body;
//console.log(produto);
//var connection = app.infra.connectionFactory();
//var produtosBanco = new app.infra.ProdutosDAO(connection);
res.render('produtos/form');
});
app.get('/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){
res.render('produtos/lista');
});
});
}
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 produtos set ?',produto,callback);
}
module.exports = function(){
return ProdutosDAO;
}
<html>
<body>
<form action="/produtos/salva" method="post">
<div>
<label for="titulo">Titulo</label>
<input type="text" id="titulo" name="titulo" placeholder="coloque o titulo"/>
</div>
<div>
<label for="preco">Preço</label>
<input type="text" id="preco" name="preco" placeholder="150.25"/>
</div>
<div>
<label for="descricao">Descrição</label>
<textarea cols="20" rows="10" id="descricao" name="descricao" placeholder="fale sobre o livro"></textarea>
</div>
<input type="submit" value="salva"/>
</form>
</body>
</html>
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;
};