情况:客户端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数据?
bodyParser中间件不会解析已发布的二进制数据。 当我尝试使用base64编码的字符串时,它将显示为JSON对象中的对象名称,类似于{“ data”:},显然希望POST-data的形式为name = value。
可能有一个处理二进制数据的中间件,或者您可以通过绑定到“ data”事件来访问原始数据,并使用ProtocolBuffers.js Wiki中描述的方法将接收到的块堆叠到缓冲区中。
这是使用不带Express的Vanilla http模块,但仍然可以正常工作。
我不了解arraybuffer,但通常情况下,我们可以使用req.body参数访问POST数据。 那对你有用吗?