Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FormData服务器端节点_Javascript_Node.js_Ajax_Web Applications_Form Data - Fatal编程技术网

Javascript FormData服务器端节点

Javascript FormData服务器端节点,javascript,node.js,ajax,web-applications,form-data,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((coun

我正在使用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();

});
现在在服务器中,我不知道如何可视化我发送的数据,infact req.body是空的

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

使用模块。通过运行命令安装“express Professional”

npm install express-formidable --save
github中的一个简单示例如下


const express = require('express');
const formidable = require('express-formidable');

var app = express();

app.use(formidable());

app.post('/upload', (req, res) => {
  //req.fields contains non-file fields 
  //req.files contains files 
  console.log(req.fields);
  console.log(req.files);
});

希望这有帮助

编辑,从-


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

你可以用

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

然后更新服务器端以处理上载:

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

看来它不起作用了。现在我的客户端无法连接到服务器和服务器端,我有一个错误:错误:请求在IncomingMessage时中止。(C:\Users\Lenovo\Desktop\Universita\Magistrale\Progetto\sourcecode\node\u modules\fordable\lib\incoming\u form.js:122:19)在IncomingMessage.emit(events.js:189:13)在socketOnClose(\u http\u server.js:449:9)在Socket.emit(events.js:194:15)在TCP.\u handle.close(net.js:597:12)尝试使用类似html的enctype=“multipart/form data”。如果有任何错误,请告诉我。enctype=“multipart/form data”不修复以前的错误如果这不起作用,那么我建议您在客户端应用程序中使用axios库。在axios中发送表单数据非常简单。请看这个问题-我使用以下模式解决:const embrable=require('embrable');app.post('/sendFiles',function(req,res){new embrable.IncomingForm().parse(req,(err,fields,files)=>{if(err){console.error('error',err)throw err}console.log('files',files);})res.end();});我遵循以下链接
app.post('/sendFiles', upload.array('files', maxCount), function(req,res)