1

状況 : クライアント js が ajax リクエストを nodejs Express サーバーに送信します。

クライアント

xmlHttpRequest=new XMLHttpRequest();  
xmlHttpRequest.open("POST","/some/server/path,true);
xmlHttpRequest.responseType="arraybuffer";
xmlHttpRequest.send(new Uint8Array(arraybufferobject));

サーバー(これまで)

var express = require('express');
var server = express();
server.use(express.static(__dirname));
server.use(express.bodyParser());
server.post('/goforms/modbus/',function(req,res,next){
    //How to access the uint8array || arraybuffer ?
});

server.listen(80);

私はこの時点で立ち往生しています。HTTP POST データにアクセスするには?

4

2 に答える 2

1

bodyParser ミドルウェアは、POST されたバイナリ データを解析しません。base64 でエンコードされた文字列を試したところ、{"data":} のような JSON オブジェクトのオブジェクト名として表示され、明らかに名前 = 値の形式の POST データが期待されていました。

バイナリ データを処理するミドルウェアが存在する可能性があります。または、「data」イベントにバインドして生データにアクセスし、ProtocolBuffers.js wikiで説明されている方法を使用して、受信したチャンクをバッファーにスタックすることができます。

これはエクスプレスなしでバニラ http モジュールを使用していますが、とにかく動作するはずです。

于 2014-02-14T12:43:09.267 に答える
0

arraybuffer についてはわかりませんが、通常は req.body パラメータを使用して POST データにアクセスできます。それはあなたのために働きますか?

于 2014-02-05T16:08:17.187 に答える