要将Blob或FormData中的音频文件写入到节点服务器上,你需要理解几个基础概念,包括HTTP请求、文件上传、Node.js的文件系统(fs)模块以及可能的中间件如Multer。
// 创建一个FormData实例
const formData = new FormData();
formData.append('audio', blob); // 'audio'是服务器端接收时的字段名,blob是音频文件的Blob对象
// 发送POST请求到服务器
fetch('/upload', {
method: 'POST',
body: formData
}).then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
const express = require('express');
const multer = require('multer');
const fs = require('fs');
const app = express();
const upload = multer({ dest: 'uploads/' }); // 设置上传文件的存储目录
app.post('/upload', upload.single('audio'), (req, res) => {
if (!req.file) {
return res.status(400).send('No file uploaded.');
}
// 将上传的临时文件移动到目标目录
const targetPath = `./uploads/${req.file.originalname}`;
fs.rename(req.file.path, targetPath, err => {
if (err) return res.status(500).send(err);
res.send({ message: 'File uploaded successfully', path: targetPath });
});
});
app.listen(3000, () => console.log('Server started on port 3000'));
通过以上步骤和解决方案,你可以实现从Blob或FormData将音频文件写入到节点服务器上。
领取专属 10元无门槛券
手把手带您无忧上云