2011-01-28 6 views
3

Node.jsアプリケーションでいくつかのバイナリデータを生成し、それをクライアントがダウンロードするHTTPレスポンスに書きたいとします。同じアプリケーションの現在の実装はPythonにあり、これはstruct moduleを使用してこれを実現します。たとえば、Node.jsでストリーミングするバイナリデータの生成と書き込み

import struct 
# ... 
s = 'Filename header' 
s_binary = struct.pack('15s',s) 
# ... 

また、Node.jsの数値をバイナリに変換するにはどうすればよいですか?私がPythonでやる方法は次のとおりです:

# To convert a float into four byte binary representation in Python. 
import struct 
num_binary = struct.pack('f',23.33) 

Node.jsで同じことをするにはどうすればいいですか?

これまで私が得たベストソリューションは、Pythonの構造体ライブラリをNode.jsに直接移植したものです。jspackです。

答えて

1

Bisonから見ることができます。 JSONと似ていますが、バイナリデータを作成します。

+0

Bisonには何が問題なのですか? – Raynos

1
var s="Filename header"; 
var s_binary=new Buffer(15); 
for(var i=0;i<s_binary.length;i++) { 
    s_binary[i]=0; 
} 
s_binary.write(s); 
// Now you can write s_binary to a stream. 
+0

OKこれはうまくいくかもしれません。数字をバイナリに変換する方法を知っていますか?質問をPythonの例で更新しましょう。 – Jayesh

+0

良い解決策。あなたがすぐにテキストでバッファを埋めるつもりなら、あなたはnullでいっぱいにする必要はありません。 – JasonWoof

+0

ストリームにバッファを書き込むことができます。たとえば、httpの例からres.end(myBuffer)を実行できます。バッファの最初の8バイトのみを送信するには:res.end(myBuffer.slice(0、8)); – JasonWoof

関連する問題