FormData服务器端NodeJS

时间:2019-06-20 14:44:33

标签: javascript node.js ajax web-applications form-data

我正在使用nodejs服务器端开发一个Web应用程序。我正在尝试将pdf文件从客户端发送到服务器。

客户:

var files = new FormData();
var count = 0;
$('#tableSlideId tr').each(function() {

    var inputForm = $(this).find("th:first").children();
    file = inputForm[0].files[0];
    files.append((count++).toString(),file);

});

$.ajax({
    type: "POST",
    url: "/sendFiles",
    data: files,
    contentType: false,
    processData: false,

}).done(function(err){

    var text ="";
    if(err) {

        text = "Upload FAILED! Retry ...";

    } else {

        text = "Upload SUCCES!";

    }

    alert(text);



});

我认为客户端可以,如果我使用此循环,则实际上是这样:

for(var p of files)
  console.log(p);

我正确地可视化了要发送到服务器的所有元素。

服务器:

app.post('/sendFiles', function(req,res) {

    console.log("--->",req.body);
    res.end();

});

现在在服务器中,我不知道如何可视化我发送的数据,实际上req.body为空。

我不知道这是否正确,但是我的目标是从客户端加载一些pdf文件,发送到服务器,然后将它们存储在mySql dmbs中。 谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您需要一些中间件来在服务器端接受多部分表单数据。 Multer是个不错的选择。

您可以使用

var multer  = require('multer')
var upload = multer({ dest: 'uploads/' })

,然后更新您的服务器端以处理上传:

app.post('/sendFiles', upload.array('files', maxCount), function(req,res)