如何在后端使用nodejs + express处理ajax / http-post请求(响应类型:arraybuffer)

问题描述 投票:1回答:2

情况:客户端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数据?

ajax node.js express http-post arraybuffer
2个回答
1
投票

bodyParser中间件不会解析已发布的二进制数据。 当我尝试使用base64编码的字符串时,它将显示为JSON对象中的对象名称,类似于{“ data”:},显然希望POST-data的形式为name = value。

可能有一个处理二进制数据的中间件,或者您可以通过绑定到“ data”事件来访问原始数据,并使用ProtocolBuffers.js Wiki中描述的方法将接收到的块堆叠到缓冲区中。

这是使用不带Express的Vanilla http模块,但仍然可以正常工作。


0
投票

我不了解arraybuffer,但通常情况下,我们可以使用req.body参数访问POST数据。 那对你有用吗?

© www.soinside.com 2019 - 2024. All rights reserved.