【发布时间】:2021-11-26 02:11:51
【问题描述】:
我有谷歌扩展、反应前端应用和快速服务器。 我使用 mediaRecorder 录制屏幕并将其插入前端页面。没有问题,视频在前端工作正常
const blob = new Blob(chunks, { type: "video/mp4;" });
const savedVideo = document.getElementById("savedVideo");
chunks = [];
const videoURL = window.URL.createObjectURL(blob);
savedVideo.src = videoURL;
var tracks = stream.getTracks();
tracks[0].stop();
let response = await fetch('http://localhost:3001/upload', {
method: 'POST',
headers: {
'Content-Type': 'application/octet-stream',
},
body: blob
});
当我将 blob 发送到服务器时,问题就开始了。我想保存视频(仅在服务器端)我想问题是在服务器端处理 blob,也许我做错了,这里是我的服务器代码:
const express = require("express");
const cors = require('cors');
const fs = require('fs');
const app = express();
const port = 3001;
app.use(cors({
origin: 'http://localhost:3000'
}));
app.post("/upload", (req, res) => {
console.log('req.body', req.body)
req.on('readable', function(){
const data = req.read();
if(data) {
fs.createWriteStream('videeoo.mp4').write(data);
// also i didnt sure about this method to write file
}
console.log('data', data);
});
});
app.listen(port, () => {
console.log(`Server started at http://localhost:${port}`);
});
我在等待你的最佳实践)Grasias!
【问题讨论】:
标签: node.js express google-chrome-extension blob