2014-02-05 60 views
1

情況:客戶端js向nodejs express服務器發送一個jjax請求。如何在後端使用nodejs + express處理ajax/http-post請求(responsetype:arraybuffer)

客戶

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數據?

回答

1

bodyParser中間件不解析POSTed二進制數據。當我嘗試使用base64編碼的字符串時,它會顯示爲JSON對象中的對象名稱,如{「data」:},顯然期望以name = value的形式發佈POST數據。

可能存在處理二進制數據的中間件,或者您可以通過綁定「data」事件來訪問原始數據,並使用ProtocolBuffers.js wiki中描述的方法將接收到的塊堆疊到緩衝區中。

這是使用香草http模塊沒有明確,但應該工作。

0

我不知道arraybuffer,但通常我們可以使用req.body參數訪問POST數據。那對你有用嗎?

+0

其空... reg.body = {} – Schemiii