Boa noite, conseguem me ajudar ?? A minha aplicação não esta gravando no banco de dados, e não consigo identificar o problema.
insira seu código aqui
insira seu código aqui
//app.js
// estes comandos foram transferidos para o arquivos express.js
//var express = require('express');
//var app = express();
//app.set('view engine', 'ejs');
//depois de implementado o arquivo express.js fica assim
var v_app = require ('./config/express')();
//código transferido para o arquivo ./app/routes/produtos.js
//app.get('/produtos', function (req, res) {
//res.send("<html><body><h1>Listagem de produtos</h1></body></html>") //tranferido para o arquivo ./views/produtos/lista.ejs
// console.log("atendendo a requisicao");
// res.render("produtos/lista");
//});
//depois de implementado o arquivo produtos.js fica assim
//var rotasProdutos = require('./app/routes/produtos')(v_app);
//esta linha saiu porque a rota passou a ser carregada no arquivo /config/express
v_app.listen(3000, function () {
console.log("servidor rodando na porta 3000");
});
------------------------------
//./config/express
//assim sempre vai carregar a o express com uma nova versão
//module.exports = function () {
// console.log("modulo ta sendo carregado");
// var app = require('express')();
// app.set('view engine', 'ejs');
// return app;
//};
// ou assim carrega apenas uma vez a versão do express
var v_express = require('express');
var v_load = require('express-load');
var bodyParser = require('body-parser');
module.exports = function () {
console.log("modulo ta sendo carregado");
var v_app = v_express();
v_app.set('view engine', 'ejs');
v_app.set('views', './app/views');
v_app.use(bodyParser.urlencoded({extended: true}));
v_load('routes', {cwd: 'app'})
.then('infra')
.into(v_app);
return v_app;
};
------------------------------
package.json
{
"name": "casadocodigo",
"version": "1.0.0",
"description": "Site da Casa do Código - Feito pelo Cacá",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Caca",
"license": "ISC",
"dependencies": {
"body-parser": "^1.17.1",
"ejs": "^2.3.3",
"express": "^4.15.2",
"express-load": "^1.1.15",
"mysql": "^2.13.0"
}
}
------------------------------
<!-- app\views\produtos\lista.ejs -->
<html>
<body>
<table>
<tr>
<td>id</td>
<td>titulo</td>
<td>descricao</td>
<td>preco</td>
</tr>
<%for(var i=0;i<lista.length;i++) {%>
<tr>
<td><%=lista[i].id%></td>
<td><%=lista[i].titulo%></td>
<td><%=lista[i].descricao%></td>
<td><%=lista[i].preco%></td>
</tr>
<%}%>
<tr>
</tr>
</table>
<!--
<form "/produtos/form" method="post">
<input name="clicou" id="clicou" type="submit" value="Novo Produto"/>
</form>
-->
</body>
</html>
------------------------------
// ./app/infra/connectionFactory.js
var v_mysql = require('mysql');
//module.exports = function (v_app) {
// return v_mysql.createConnection({
// host : 'LocalHost',
// user : 'root',
// password : 'Mrlf0101',
// database : 'casadocodigo_nodejs'
// });
function createDBConnection() {
return v_mysql.createConnection({
host: 'localhost',
user: 'root',
password : '',
database: 'casadocodigo_nodejs'
});
}
module.exports = function () {
return createDBConnection;
};
------------------------------
// ./app/routes/produtos.js
//var v_connectionFactory = require('../infra/connectionFactory');
//este carregamento não é mais necessário, pois a coneção foi carregada no arquivo /config/express
module.exports = function (v_app) {
console.log("atendendo a requisicao");
var v_listaProdutos = function(req, res) {
var v_connection = v_app.infra.connectionFactory();
var v_produtosDAO = new v_app.infra.ProdutosDAO(v_connection);
v_produtosDAO.lista(function (err, results) {
res.render('produtos/lista', {lista: results});
});
v_connection.end();
};
v_app.get('/produtos', v_listaProdutos);
v_app.get('produtos/remove', function () {
var v_connection = app.infra.connectionFactory();
var v_produtosDAO = new app.infra.ProdutosDAO(v_connection);
var v_produto = v_produtosDAO.carrega(id, callback);
if (v_produto) {
v_produtosBanco.remove(v_produto, callback);
}
});
v_app.get('/produtos/form', function (req, res) {
res.render('produtos/form');
});
v_app.post('/produtos/salva', function (req, res) {
var v_produto = req.body;
console.log(v_produto);
var v_connection = v_app.infra.connectionFactory();
var v_produtosDAO = new v_app.infra.ProdutosDAO(v_connection);
v_produtosDAO.salva(v_produto, function (err, results) {
//v_listaProdutos(req, res);
res.redirect('/produtos');
});
v_connection.end();
});
};
------------------------------
// app\infra\produtosDAO.js
//module.exports = function () {
// return function (v_connection) {
// this.lista = function (callback) {
// v_connection.query('select * from produtos', callback);
// };//
//this.remove = function (callback) {
// v_connection.query('select * from produtos', callback);
//};
// console.log(this);
// return this;
// };
//};
function ProdutosDAO(p_connection) {
this._v_connection = p_connection;
}
ProdutosDAO.prototype.lista = function (callback) {
this._v_connection.query('select * from produtos', callback);
};
ProdutosDAO.prototype.salva = function (p_produto, callback) {
this._v_connection.query('insert into produtos set ?', p_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="Gravar"/>
</form>
</body>
</html>