如何从FileReader上传(pdf)文件到Node js Express应用

我有一个(响应)js应用程序,该应用程序使用FileReader读取PDF文件,然后使用fetch将其发送到运行Express的节点js服务器。但是,在服务器端收到请求时,请求正文为未定义。我的代码缺少什么才能正常工作?

客户端:

function readFile() {
    let file = fileInputRef.current.files[0];
    const reader = new FileReader();
    return new Promise((resolve) => {         
      reader.onload = function (e) {
        resolve(e.target.result);
      };
      reader.readAsDataURL(file);//readAsDataURL,readAsArrayBuffer,or readAsBinaryString?
    });
  }

function handleSubmit(event) {
    event.preventDefault();    
readFile().then((value) => {
  fetch('/gen/file',{
    method: 'POST',body: value
  })
});

服务器端:

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser')
const app = express();
const jsonParser = bodyParser.json()
const port = 3000;

app.post("/gen/file",function (req,res,next) {
  console.log(req.body);//undefined - Why????
});
app.listen(port,function (err) {
  if (err) console.log(err);
});
ctq1989 回答:如何从FileReader上传(pdf)文件到Node js Express应用

客户端:

def clean_username(self):
    username = self.cleaned_data['username']
    
    if not username.isdigit():
        users = KeepSafeUserModel.objects.exclude(pk=self.instance.pk).filter(
            username__iexact=username
        ).exists()
        if users:
            raise forms.ValidationError"Username has already taken by someone else")
    else:
        raise forms.ValidationError("Username can't contains only numbers")
    return username

服务器端:

function getBase64(file,callback){
   const reader = new FileReader();
   reader.addEventListener('load',()=> callback(reader.result));
   reader.readAsDataURL(file);
}
function handleSubmit(event) {
    event.preventDefault();  
    let body = {};
    getBase64(file,fileUrl=>{
      body.file = fileUrl;
      fetch('/gen/file',{
       method: 'POST',body
      })
    })
本文链接:https://www.f2er.com/1299977.html

大家都在问