2012-03-17 8 views
6

Estoy desarrollando una pequeña aplicación en Node.js. Solo estoy usando Node.js para entrada y salida. El sitio web real se está ejecutando a través de nginx. El sitio web tiene una conexión Websocket con node.js y se usa principalmente para manipulaciones de db.Obteniendo node.js para leer archivos en formato html

Una de las cosas que trato de hacer es conseguir que node envíe pequeñas partes de html junto con los datos de la base de datos. Probé el siguiente código.

simplificado:

connection.on('message', function(message) { 
     fs.readFile(__dirname + '/views/user.html', function(err, html){ 

      if(err){ 
       console.log(err); 
      }else{ 
       connection.sendUTF(JSON.stringify({ 
        content: html, 
        data: {} 
       })); 
      } 
     }); 
    } 
}); 

Cuando console.log(html) en el servidor o en el cliente solo me dan los números hacia atrás.

Cualquiera sabe lo que podría estar mal.

NOTA:Realmente quiero estar lejos de cosas como socket.io, express, etc Sólo mantenerlo lo más simple posible y no se necesitan mecanismos de emergencia.

+0

Paso 3 de [esta] (http://net.tutsplus.com/tutorials/javascript-ajax/learning-serverside-javascript-with-node-js /)? Además, aparentemente es posible que desee reemplazar "sendHeader" con "writeHead". – cormacrelf

+0

¿Dónde reemplazo a senHeader? –

Respuesta

22

Si no especifica una codificación para fs.readFile, recuperará el almacenamiento en tiempo real en lugar del contenido esperado del archivo.

Intente llamar de esta manera:

fs.readFile(__dirname + '/views/user.html', 'utf8', function(err, html){ 
.... 
+0

Ok, intentaré eso. Pensé que leí en la documentación que se establece automáticamente en utf8 cuando no especifica ninguna. Tal vez pasé por alto algo. Intentaremos esto e informaremos. –

+0

¡Eso hizo el truco! –

+0

¡Gracias por la respuesta! :) – Aircraft5