1

Вопрос по ajax, node.js, express, http-post, arraybuffer – Как обработать запрос ajax / http-post (responsetype: arraybuffer), используя nodejs + express в серверной части

Ситуация: Клиент js отправляет запрос ajax на экспресс-сервер nodejs.

клиент

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?

2 ответа
1

Промежуточное программное обеспечение bodyParser не анализирует двоичн

ые данные POST. Когда я пробовал строки в кодировке base64, он отображался как имя объекта в объекте JSON, что-то вроде {"data":}, очевидно ожидая POST-данные в форме name = value.

Это может быть промежуточное программное обеспечение, работающее с двоичными данными, или вы можете получить доступ к необработанным данным, привязавшись к событию «data» и сложив полученные куски в буфер, используя метод, описанный вProtocolBuffers.js вики.

Это использует модуль vanilla http без Express, но все равно должен работать.

0

Я не знаю о массивном буфере

но обычно мы можем получить доступ к данным POST с помощью параметра req.body. Это работает для вас?

его пусто .. reg.body = {}

от Schemiii

Похожие вопросы