2011-08-16 24 views
5

Mam następujący kod node.js:nodejs: łańcuchach

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); 
    }); 

Ale substr nie pojawia się do pracy!

Jak mogę uzyskać łańcuchy znaków w pliku node.js?

Dziękujemy wcześniej,

+0

jego probablye 'DJBHash' że nie – Raynos

+0

I wypowiedziało się tej linii ... Kolejna linia zawodzi teraz ... – Eamorr

+0

spróbuj 'Object.prototype.toString.call (responseData)' – Raynos

Odpowiedz

13

Dane zmienna jest typu Buffer, trzeba by utworzyć ciąg metodą toString, a następnie będzie można zrobić substr. Coś takiego będzie działać:

responseData.toString().substr(1) 

Aby uzyskać więcej informacji skonsultować ten link:

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

+0

Witam, że działało naprawdę dobrze. Zastanawiam się, czy wiesz, jak przejść z ciągu znaków do typu "responseData"? – Eamorr

+1

Zgodnie z dokumentacją: 'nowy bufor (myStr)' zrobi to http://nodejs.org/docs/v0.4.10/api/buffers.html#new_Buffer –

+0

I tak to robi! Woop woop! Wielkie dzięki. Nie mogłem znaleźć niczego na google ... – Eamorr

Powiązane problemy