2011-08-16 14 views
5

Tengo el siguiente código de Node.js:nodejs: manipulación de cadenas

conn.on("data",function(x){ 
     var responseData=x; 
     //sys.puts(responseData); 
     sys.puts(responseData.length); 

     var f=50; 
     var N=responseData.length; 
     if(N>f){ 
     var p=Math.floor(N/f); 
     var p_rem=N%f; 

     var hash=""; 
     for(var i=0;i<p;i++){ 
      hash=DJBHash(responseData.substr(f*i,f)); //this line causes program to exit! 
      sys.puts(responseData.substr(f*i,f)+"***"+hash); 
     } 
     } 
     soc.write(x); 
    }); 

Pero substr no parece funcionar!

¿Cómo puedo obtener subcadenas de una cadena en node.js?

Muchas gracias de antemano,

+0

su probablye 'DJBHash' que no – Raynos

+0

lo comenté a cabo esa línea ... La siguiente línea está fallando ahora ... – Eamorr

+0

intente 'Object.prototype.toString.call (responseData)' – Raynos

Respuesta

13

El dato variable es del tipo de tampón, se tendría que crear una cadena con el método toString y luego, usted será capaz de hacer el substr. Algo así como que funcionará:

responseData.toString().substr(1) 

Para obtener más información, consulta este enlace:

http://nodejs.org/docs/v0.4.10/api/buffers.html#buffer.toString

+0

Hola, eso funcionó muy bien Me preguntaba ¿sabes cómo pasar de una cadena al tipo que es "responseData"? – Eamorr

+1

De acuerdo con la documentación: 'new Buffer (myStr)' lo hará http://nodejs.org/docs/v0.4.10/api/buffers.html#new_Buffer –

+0

¡Y así lo hace! ¡Woop Woop! Muchas gracias. No pude encontrar nada en google ... – Eamorr

Cuestiones relacionadas