Как использовать fs.readStream и fs.writesream для отправки и получения видеофайлов (.mp4) [с клиента на сервер или наоборот] [в Node Js]? - PullRequest
1 голос
/ 30 июня 2019

   ## Here is my Unsucessfull approach  ##


----------


> Server side code
> Recieve Video stream from client and save it in .mp4 format

var express = require('express');
var app = global.app = exports.app = express();
var fs = require('fs');

app.post('/video_main', (req, res, next) => {
  console.log(req)
  const video_stream = fs.createWriteStream('vde.mp4')
  req.pipe(video_stream)
  //save the video stream to vde.mp4
})


app.use('*', function(req, res, next) {

  return res.status(404).json({
    'status': 'FAILURE',
    'message': 'Not found'
  })

})

app.listen('3000');
// server listening on http://localhost:3000/


----------


> Client side  code
> send video stream to server

const request = require('request')
const fs = require('fs')
var readablestream = fs.createReadStream('SampleVideo_1280x720_1mb.mp4')
const write = fs.createWriteStream('test.mp4');
const r = request.post("http://localhost:3000/video_main");
r.pipe(readablestream);

/*

*/

   

1 Ответ

0 голосов
/ 30 июня 2019

Основная ошибка с вашим кодом на стороне клиента, последняя строка должна быть

readablestream.pipe(r);

Так как вы передаете данные из читаемого потока в запрос.

Для дальнейшего использования, вы всегда должны следовать соглашению:

readstream.pipe(writestream);

Я понял это, проанализировав код на этом github, который имеет довольно хорошая реализация передачи файлов через HTML:

https://gist.github.com/alepez/9205394

...