如何使用后端中的Nodejs Express处理AJAX/HTTP-POST请求(响应类型:ArrayBuffer)



情况:客户端JS将AJAX请求发送到Nodejs Express Server。

客户端

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":},显然会期望以form name = value。

可能有一个处理二进制数据的中间件,或者您可以使用protocolbuffers.js wiki中描述的方法来绑定"数据"事件并将收到的块堆叠到缓冲区中。p>这是使用无express的香草http模块,但无论如何都应该起作用。

我不知道ArrayBuffer,但是通常,我们可以使用Req.body参数访问邮政数据。这对您有用吗?

最新更新