Javascript 从设备向node.js中的服务器发送多部分请求

Javascript 从设备向node.js中的服务器发送多部分请求,javascript,node.js,rest,Javascript,Node.js,Rest,我正在从设备接收视频字节,它应该是一个多部分请求。它是在node.js中创建的post api。如何在node.js中的post api中接收多部分请求。下面是当前正在保存视频字节的代码 app.js app.post('/saveVideo',service.saveVideo); routes.js(class service method saveVideo) var video_byte_string = req.param('videoByteStr'); var writeStre

我正在从设备接收视频字节,它应该是一个多部分请求。它是在node.js中创建的post api。如何在node.js中的post api中接收多部分请求。下面是当前正在保存视频字节的代码

app.js
app.post('/saveVideo',service.saveVideo);

routes.js(class service method saveVideo)
var video_byte_string = req.param('videoByteStr');
var writeStream = gfs.createWriteStream({mode:'w',content_type: 'video/mov'});
var buffer = new Buffer(video_byte_string).toString('base64');
var response = streamifier.createReadStream(buffer).pipe(writeStream);

您需要在视频字节字符串后面附加一个分隔符,如下所示

如果字节字符串为-'abcdefghijklmnopqrstuvwxyz'

然后需要像这样附加任何分隔符(######)以标识整个字符串的结尾

现在,您的请求字符串将是这样的-'abcdefghijklmnopqrstuvxyz'+'

现在,您的请求字符串有一个结束分隔符(#####),您可以从中识别完整的块

var video_byte_string = req.param('videoByteStr');
isCorrectString = false;
data_stream += video_byte_string;
var n = data_stream.lastIndexOf("#####");
if (n === -1) {
    var steamArr= data_stream.split("#####");
    var completeByteString = steamArr[0];
    isCorrectString = true;
}

if(isCorrectString) {

    var writeStream = gfs.createWriteStream({mode:'w',content_type: 'video/mov'});
    var buffer = new Buffer(completeByteString).toString('base64');
    var response = streamifier.createReadStream(buffer).pipe(writeStream);
}

谢谢你试过我的答案了吗?如果是,请告诉我结果如何?@Dineshaws不,我没有。今天我将尝试它,并告诉您结果。我有一个查询,req.param('videoByteStr')是否只收到一次请求?这意味着它只会收到一块?你在用蒸汽吗?如果是,则您将以块的形式接收,如果您不使用流媒体,则意味着所有的视频“是”将以单个块的形式接收。为了接收块,我提供了一个简单的示例,如果您正在接收块