javascript - 我如何在不使用任何节点模块的情况下处理多部分表单数据
问题描述
我正在尝试使用 POST 请求将图像文件提交到服务器,在前端获取请求的主体中,我将主体添加为 FormData,如下所示
let formdata = new FormData(form)
async function finalFetch(formdata){
let postReq = await fetch('/api/fileupload', {method : 'POST', body : formdata})
let result = await postReq.json()
return result.url;
}
现在在后端提交此表单时,我正在处理这样的数据
req.on('data', (chunk)=>{
console.log(chunk);
})
req.on('end', ()=>{
// pseudo code, this will get replaced by something else
res.write(JSON.stringify({
msg : 'File Upload done',
url : '/232'
}));
res.end();
})
上面的实现给了我一个Buffer
,我不知道如何在服务器中从这个缓冲区写入文件
我知道有很多模块可以处理 multer、express、formidable 等形式,但我不想使用它们中的任何一个,我试图了解这些包是如何工作的。我只是使用核心节点js。
解决方案
缓冲区完全接收后,您应该使用核心节点模块“fs”将 buf 写入文件。
const fs = require('fs');
fs.writeFile('file.name', buffer);
请参阅文档fs.writeFile
推荐阅读
- php - Yii2 Advanced app init.bat fgets 不工作
- javascript - 将控件与同级组件的元素绑定
- java - 在.txt文件java中的不同行中写入问题
- python - 何时在 Python 类型提示中使用 IO[str]/IO[bytes] 和 TextIO/BinaryIO?
- c# - 如何在另一个位置创建数据库,而不是在 ASP.NET Core 2.2 中的默认哺乳 c:\Users\USER
- reactjs - 下一个带有 redux 的 js 并重新选择
- excel - Expression.Error:我们不能将运算符 < 应用于类型 Function 和 Number
- visual-studio-code - VSCode geddski 的宏扩展:如何通过简单地写 3 个首字母来编写片段,然后在建议中选择片段?
- google-maps - 在 Gmap(Primefaces)中绘制多边形?
- react-native - 在使用 expo build:android 构建 react-native 应用程序时,我收到 MaxListenersExceededWarning 错误