NODE.js com socket e MySql
Olá pessoal bom dia! estou com um problema com o node, acredito que deve ser algo relacionado a callback´s, porém não tenho certeza, mais enfim, meu problema se resuma basicamente em puxar os dados de um banco MySql, esses dados serão retornados para o "chat", no entanto esses dados não são inseridos onde deveria.
const express = require('express');
const path = require('path');
const app = express();
const server = require('http').createServer( app );
const io = require('socket.io')(server);
const mysql = require('mysql');
// conexao com o banco de dados
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "dados_users"
});
app.use(express.static(path.join(__dirname,'public')));
app.set('views',path.join(__dirname,'public'));
app.engine('html',require('ejs').renderFile);
app.set('view engine','html');
app.use('/', ( request , res ) => {
res.render('index.html');
});
let msg =[];
io.on('connection', socket => {
//este select deve retornar as mensagens que estão no banco para a
//variavel msg
// con.connect(function(err) {
// con.query('SELECT * FROM dados', function(err, rows, fields) {
// if (err) throw err;
// msg = rows;
// });
// });
socket.emit('msg_existentes',msg); //retorna dados earmazenados na variavel msg
socket.on('recebe_do_front', data => {
console.log(msg);
// con.connect(function(err) {
// var sql = "INSERT INTO dados (nome, msg) VALUES ('"+data.nome+"', '"+data.msg+"')";
// con.query(sql, function (err, result) {
// if (err) throw err;
// console.log("1 record inserted");
// });
// });
msg.push( data ); //manter msg na section da pagina
socket.broadcast.emit('envia_para_usuario', data); //retorna msg do canudo
});
});
server.listen(3001);
Bom este é o código do servidor, porem a unica coisa que esta dando problenas é a função de { select } onde deveria armazenar seu retorno em uma variavel chamada . Segue a função.
//este select deve retornar as mensagens que estão no banco para a
//variavel msg
// con.connect(function(err) {
// con.query('SELECT * FROM dados', function(err, rows, fields) {
// if (err) throw err;
// msg = rows; //os dados de rows deve ser passados para a msg e inserida no socket
// });
// });
const express = require('express');
const path = require('path');
const app = express();
const server = require('http').createServer( app );
const io = require('socket.io')(server);
const mysql = require('mysql');
// conexao com o banco de dados
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "dados_users"
});
app.use(express.static(path.join(__dirname,'public')));
app.set('views',path.join(__dirname,'public'));
app.engine('html',require('ejs').renderFile);
app.set('view engine','html');
app.use('/', ( request , res ) => {
res.render('index.html');
});
let msg =[];
io.on('connection', socket => {
//este select deve retornar as mensagens que estão no banco para a
//variavel msg
// con.connect(function(err) {
// con.query('SELECT * FROM dados', function(err, rows, fields) {
// if (err) throw err;
// msg = rows;
// });
// });
socket.emit('msg_existentes',msg); //retorna dados earmazenados na variavel msg
socket.on('recebe_do_front', data => {
console.log(msg);
// con.connect(function(err) {
// var sql = "INSERT INTO dados (nome, msg) VALUES ('"+data.nome+"', '"+data.msg+"')";
// con.query(sql, function (err, result) {
// if (err) throw err;
// console.log("1 record inserted");
// });
// });
msg.push( data ); //manter msg na section da pagina
socket.broadcast.emit('envia_para_usuario', data); //retorna msg do canudo
});
});
server.listen(3001);
Bom este é o código do servidor, porem a unica coisa que esta dando problenas é a função de { select } onde deveria armazenar seu retorno em uma variavel chamada . Segue a função.
//este select deve retornar as mensagens que estão no banco para a
//variavel msg
// con.connect(function(err) {
// con.query('SELECT * FROM dados', function(err, rows, fields) {
// if (err) throw err;
// msg = rows; //os dados de rows deve ser passados para a msg e inserida no socket
// });
// });
Joao
Curtidas 1