Foros del Web » Programando para Internet » Node.js »

[SOLUCIONADO] [Consulta] Puedo enviar variables a un archivo js o html

Estas en el tema de [Consulta] Puedo enviar variables a un archivo js o html en el foro de Node.js en Foros del Web. Buenos días, Esta estoy recién conociendo NODE e visto y leido algunos tutoriales pero no e visto en ninguna parte como traspasar variables entre distintos ...
  #1 (permalink)  
Antiguo 20/06/2013, 09:37
 
Fecha de Ingreso: junio-2013
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
[Consulta] Puedo enviar variables a un archivo js o html

Buenos días, Esta estoy recién conociendo NODE e visto y leido algunos tutoriales pero no e visto en ninguna parte como traspasar variables entre distintos archivos.

Donde quiero tener un HTML estático y hacer consultas con NODE a mi base de datos MYSQL, y cargar los datos obtenidos en las consultas MYSQL en mi HTML.

lo que logre hacer es mostrar información de un archivo.js sin problema pero cuando quiero mostrar el resultado de la consulta no puedo.

Pego mi código:

index.html

Código Javascript:
Ver original
  1. <!DOCTYPE html>
  2. <html lang=es>
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="Content-type" name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
  6. <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
  7. <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  8. <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
  9. <script>
  10. function test(){
  11. alert("test");
  12. }
  13.  
  14. </script>
  15.  
  16. </head>
  17. <body>
  18. <div data-role="header">
  19. <h1>TEST DE MOSTRAR DESDE NODE.JS</h1>
  20.    </div>
  21. <div id="resultado" >
  22. <h2>DESDE NODE</h2>
  23. </div>
  24. <p></p>
  25. <div>
  26. <h2>DESDE JS</h2>
  27. <div id="resultado2">
  28. <h2>DESDE JS</h2>  
  29. </div>
  30. </div>
  31. </body>
  32. <script type="text/javascript" src="mysql.js"></script>
  33. <script type="text/javascript" src="holamundo.js"></script>
  34. </html>


mysql.js (NODE) desde aqui no logro enviar las variables al html como innerHTML o al holamundo.js

Código Javascript:
Ver original
  1. var mysql      = require('mysql');
  2. var connection = mysql.createConnection({
  3.  host     : 'localhost',
  4.  user     : 'root',
  5.  password : '',
  6. });
  7.  
  8. connection.connect();
  9.  
  10. connection.query('USE locales')
  11.  
  12. connection.query('SELECT type FROM markers', function(err, rows, fields) {  
  13. var mostrar;
  14. if(err){
  15. console.log("ERROR: "+err.message);
  16. throw err;
  17. }
  18.  
  19. for(var i=0;i<rows.length;i++){
  20.  
  21. mostrar = rows[i].type;
  22. console.log(mostrar);
  23. }
  24.  //console.log(rows);
  25.  
  26. return(mostrar);
  27. });
  28.  
  29. connection.end();

holamundo.js funciona OK

Código Javascript:
Ver original
  1. $('#lista').listview();
  2. document.getElementById('resultado2').innerHTML = "<ul id='lista' data-role='listview' data-inset='true'>" +
  3.                                                  "<li><a href='#' onClick='test();'>1</a></li>" +
  4.                                                  "<li><a href='#'>2</a></li>" +
  5.                                                  "</ul>";

Ojala puedan ayudarme ,
Gracias
  #2 (permalink)  
Antiguo 20/06/2013, 14:26
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 9 meses
Puntos: 9
Respuesta: [Consulta] Puedo enviar variables a un archivo js o html

Hola, ¿Te funciona algo de tu código?

Por lo que veo ni estás conectando al servidor de NodeJS, ni estás devolviendo ningún dato.

Que yo sepa tienes que conectarlo a un puerto, no sé (Usando socket.io). No soy experto pero es lo que yo hago para poder enviar y recibir datos:

Código Javascript:
Ver original
  1. var mysql = require('mysql');
  2.  
  3. var client = mysql.createConnection(
  4.     {
  5.       host     : 'localhost',
  6.       user     : 'root',
  7.       password : '',
  8.       database : 'database',
  9.     }
  10. );
  11.  
  12. client.connect(function(error, results) {
  13.   if(error) {
  14.     console.log('Error de conexion: ' + error.message);
  15.     return;
  16.   }
  17.   console.log('Conectado a MySQL correctamente');
  18. });
  19.  
  20. var io = require('socket.io').listen(15000, { log: false });
  21.  
  22.  
  23. io.sockets.on('connection', function (socket) {
  24.     socket.on('request1', function() {
  25.         client.query("SELECT type FROM markers", function(errors, rows) {
  26.             socket.emit('send1', rows[0].type);
  27.         });
  28.     });
  29. });

Si no es así, no me hagas caso. Pero yo almenos para poder enviar datos al servidor y poder recibirlos tengo que usar sockets.
  #3 (permalink)  
Antiguo 20/06/2013, 15:05
 
Fecha de Ingreso: junio-2013
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: [Consulta] Puedo enviar variables a un archivo js o html

cuando ejecuto node mysql.js me muestra el resultado de la consulta en la consola, y en tu código como recibes el resultado¿
  #4 (permalink)  
Antiguo 20/06/2013, 15:25
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 9 meses
Puntos: 9
Respuesta: [Consulta] Puedo enviar variables a un archivo js o html

Cita:
Iniciado por Fmoris Ver Mensaje
cuando ejecuto node mysql.js me muestra el resultado de la consulta en la consola, y en tu código como recibes el resultado¿
Claro, puedes mostrar en la consola los datos, pero nada más. Creo que no puedes devolver los datos desde un servidor hasta el cliente si no es por sockets.

Con el código que te he pasado, y usando el módulo socket.io puedes enviar datos desde el cliente hasta el servidor y viceversa.

Aunque le faltan partes, como la conexión del cliente al servidor, y la petición para recibir los datos.

Si quieres saber más acerca de como funciona tienes su página web: http://socket.io
  #5 (permalink)  
Antiguo 20/06/2013, 15:34
 
Fecha de Ingreso: junio-2013
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: [Consulta] Puedo enviar variables a un archivo js o html

Gracias, ya estoy instalando socket.io mientras me informo
  #6 (permalink)  
Antiguo 24/06/2013, 14:04
 
Fecha de Ingreso: junio-2013
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: [Consulta] Puedo enviar variables a un archivo js o html

Cita:
Iniciado por SeaPirates Ver Mensaje
Claro, puedes mostrar en la consola los datos, pero nada más. Creo que no puedes devolver los datos desde un servidor hasta el cliente si no es por sockets.

Con el código que te he pasado, y usando el módulo socket.io puedes enviar datos desde el cliente hasta el servidor y viceversa.

Aunque le faltan partes, como la conexión del cliente al servidor, y la petición para recibir los datos.

Si quieres saber más acerca de como funciona tienes su página web: [url]http://socket.io[/url]
Muchas gracias por la info, logre hacer lo que queria, insertar, listar, etc desde una base de datos mysql con los modulos socket.io y mysql.

Ahora si tengo otro problema que cuando muestra la información obtenida desde la base de datos , no toman los diseños de jquery Mobile.

Código Javascript:
Ver original
  1. <ul data-role="listview" data-filter="true" data-filter-placeholder="busca locales..." data-inset="true" id='lista_locales_ingresados'></ul>

tengo este codigo que se supone que arregla el problema

Código Javascript:
Ver original
  1. $("#lista_locales_ingresados").listview("refresh");

pero no me funciona.

pego mi index.html por si alguien tiene la solución.
*tengo comentado el refresh porque no me funciona

Código Javascript:
Ver original
  1. <!DOCTYPE html>          
  2. <!DOCTYPE html>          
  3. <html>                          
  4.   <head>                                            
  5.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6.     <title>Node JS</title>
  7.     <style type="text/css">                    
  8.       html , body {
  9.         font: normal 0.9em arial , helvetica;
  10.       }                    
  11.     </style>
  12.     <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
  13.     <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  14.     <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
  15.     <script src="http://localhost:3000/socket.io/socket.io.js"></script>
  16.     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  17.     <script type="text/javascript">
  18.  
  19.     $(document).ready(function() {
  20.       var socket  = io.connect('http://localhost:3000');
  21.        
  22.       $('#save').click(function() {
  23.         if ($('#nombre_local').val() == '' || $('#direccion_local').val() == '') {
  24.           return alert('Porfavor ingrese todos los campos!');
  25.  
  26.         }
  27.         var data = {
  28.           name:    $('#nombre_local').val(),
  29.           address: $('#direccion_local').val(),
  30.           lat:     $('#latitud_local').val(),
  31.           lng:     $('#longitud_local').val(),
  32.           type:    $('#tipo_local').val()
  33.  
  34.         };
  35.        // $("#lista_locales_ingresados").listview("refresh");  
  36.         socket.emit('add local', data);        
  37.         $('#nombre_local').val('');
  38.         $('#direccion_local').val('');          
  39.         $('#latitud_local').val('');
  40.         $('#longitud_local').val('');
  41.         $('#tipo_local').val('');
  42.       });
  43.  
  44.       socket.on('listar', function(data) {
  45.  
  46.         var out = "";
  47.         $.each(data, function(i, obj) {
  48.           out += "<li>"+obj.name+" <b>Ubicado en</b> "+obj.address+" <b>latitud:</b> "+obj.lat+"<b>Long:</b> "+obj.lng+" <b>Tipo:</b> "+obj.type+"</li>";
  49.         });
  50.         $('#lista_locales_ingresados').html(out);  
  51.  
  52.  
  53.       });
  54.     });
  55.     </script>  
  56.   </head>                                                                                                                              
  57.   <body>
  58.     <div data-role="header">
  59.       <h1>Crear nuevo Registro</h1>
  60.     </div>
  61.     <label for="text-basic">NOMBRE LOCAL:</label>
  62.     <div><input type='text' id='nombre_local' value=''></div>
  63.     <div>DIRECCION: <input type='text' id='direccion_local' value=''></div>
  64.     <div>LATITUD: <input type='text' id='latitud_local' value=''></div>
  65.     <div>LONGITUD: <input type='text' id='longitud_local' value=''></div>
  66.     <div>TIPO: <input type='text' id='tipo_local' value=''></div>
  67.     <div><input data-inline="true" type='button' value='Guardar' id='save'></div>
  68.    
  69.     <br>
  70.     <h2>lista_locales_ingresados:</h2>
  71.     <ul data-role="listview" id='lista_locales_ingresados'></ul>
  72.    
  73.   </body>                                                                                                                              
  74. </html>

Última edición por Fmoris; 24/06/2013 a las 15:04
  #7 (permalink)  
Antiguo 17/07/2013, 09:57
 
Fecha de Ingreso: junio-2013
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: [Consulta] Puedo enviar variables a un archivo js o html

solucione el problema agregando este codigo

$('#lista_locales_ingresados').html(out);
$('#lista_locales_ingresados').listview('refresh') ;

Etiquetas: html, js, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:41.