后端如何缓存前端传来的二进制流
时间: 2023-10-17 19:05:12 浏览: 86
后端可以使用流式上传技术缓存前端传来的二进制流。流式上传是一种将文件或二进制数据分块上传到服务器的技术,它可以有效地减少内存占用和网络带宽的消耗。
以下是一个基于Node.js的示例代码,演示如何使用流式上传技术缓存前端传来的二进制流:
```javascript
const http = require('http');
const fs = require('fs');
http.createServer((req, res) => {
if (req.method === 'POST') {
// 创建可写流
const writableStream = fs.createWriteStream('data.bin');
// 接收数据块
req.on('data', chunk => {
// 将数据块写入可写流
writableStream.write(chunk);
});
// 接收完毕
req.on('end', () => {
// 关闭可写流
writableStream.end();
// 返回响应
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Upload complete');
});
} else {
// 返回表单页面
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(`
<form method="post" action="/" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">Upload</button>
</form>
`);
}
}).listen(3000, () => {
console.log('Server started');
});
```
以上代码中,我们创建了一个HTTP服务器,并在其中处理POST请求。当收到POST请求时,我们创建了一个可写流,并通过req.on('data', callback)方法接收数据块,然后将其写入可写流中。当数据接收完毕时,我们关闭可写流,并返回响应。在实际应用中,我们可以将数据块写入缓存文件或数据库中,以实现数据的持久化存储。
阅读全文