我如何在不使用任何节点模块的情况下处理多部分表单数据

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,默认情况下节点不提供写入文件的选项。