繁体   English   中英

如何通过 HTTP POST 将 zip 文件发送到节点服务器? (服务器总是只接收“{}”)

[英]How to send zip Files to a Node Server via HTTP POST? (server always only receives "{}")

在我的学士论文中,我正在编写一个程序来可视化通过 GDPR 第 20 条请求的个人数据。 由于这种数据通常是压缩的,我需要能够将压缩文件发送到我的 node.js 服务器。 这是我到目前为止所做的。

            async function test (element){
            let file = element.files[0];
            await base64(file);
            async function base64(file){
                let reader = new FileReader();
                reader.readAsDataURL(file);
                reader.onload = await async function () {
                    console.log(reader.result);
                    fetch('/api', {
                        method: 'POST',
                        body: reader.result,
                    })
                        .then(response => response.json())
                        .then(result => {
                            console.log('Success:', result);
                        })
                        .catch(error => {
                            console.error('Error:', error);
                        });
                };
                reader.onerror = function (error) {
                    console.log('Error: ', error);
                };
            };
        }

在这一点上,我只是试图 console.log() 我的 request.body,但这里是我的服务器代码:

const { response } = require("express");
const express = require("express");
const { request } = require("http");
const JSZip = require("jszip");
const app = express();
app.listen(1234, () => console.log("Listening at 1234"));
app.use(express.static("public"));
app.use(express.json({limit: "10000mb"}))

app.post("/api", async (request, response) => {
    console.log(request.body);
    response.json({status: "success33"});
});

当我记录 reqeust.body 时,它是空的“{}”。 有人知道这个问题吗? 我读了很多线程,但没有一个真正适合我的问题。

提前致谢!

我遇到了同样的问题,当我添加这个中间件时:

import * as fileUpload from 'express-fileupload';
app.use(fileUpload({createParentPath:true})) 

问题已经解决,我能够从req.files中获取任何文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM