我如何在不使用任何节点模块的情况下处理多部分表单数据
How i can handle multipart form data without using any node modules
我正在尝试使用 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'将缓冲区写入文件。
const fs = require('fs');
fs.writeFile('file.name', buffer);
查看文档 fs.writeFile
有大量的第三方包为什么不使用它们,其中一个著名的是 https://www.npmjs.com/package/multer,默认情况下节点不提供写入文件的选项。
我正在尝试使用 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'将缓冲区写入文件。
const fs = require('fs');
fs.writeFile('file.name', buffer);
查看文档 fs.writeFile
有大量的第三方包为什么不使用它们,其中一个著名的是 https://www.npmjs.com/package/multer,默认情况下节点不提供写入文件的选项。