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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.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 使用multer在express js上上载多个文件返回空数组_Javascript_Node.js_Express_File Upload_Multer - Fatal编程技术网

Javascript 使用multer在express js上上载多个文件返回空数组

Javascript 使用multer在express js上上载多个文件返回空数组,javascript,node.js,express,file-upload,multer,Javascript,Node.js,Express,File Upload,Multer,我正在使用ExpressJS构建一个应用程序,它需要用户上传多个文件。这是我的密码: var express=require('express'); var cors=要求(“cors”); var bodyParser=require('body-parser'); 变量上下文=要求('./上下文'); var path=require('path'); var fileUpload=require('express-fileUpload'); var multer=需要('multer')

我正在使用ExpressJS构建一个应用程序,它需要用户上传多个文件。这是我的密码:

var express=require('express');
var cors=要求(“cors”);
var bodyParser=require('body-parser');
变量上下文=要求('./上下文');
var path=require('path');
var fileUpload=require('express-fileUpload');
var multer=需要('multer');
var upload=multer();
var-app=express();
应用程序使用(cors());
use(bodyParser.json());
app.use(fileUpload());
应用程序集(“查看引擎”、“ejs”);
应用程序集(“视图”、“视图”);
应用程序使用(express.static('views/');
//在这里,快速文件上传工作正常
app.post('/getcontexts',函数(req,res){
var context=contexts.get(req.files.file.data.toString());
res.render('rast',{length:context.length,content:context});
});
//这是当我得到一个空数组时
app.post('/getrast',upload.array('rastfiles'),函数(req,res){
res.json({data:req.files});
});
var listener=app.listen(process.env.PORT,函数(){
console.log('服务器在端口'+listener.address().PORT'上启动);

});这是来自multer文档:

Multer接受一个选项对象,其中最基本的是dest 属性,它告诉Multer在何处上载文件以防您 省略options对象,文件将保留在内存中,并且永远不会删除 写入磁盘。

这意味着您至少需要定义
dest
选项:

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

multer无法工作的原因是,express fileupload已被用作文件上载的中间件,因此请评论这一行:

  app.use(fileUpload())

为我解决了这个问题。

谢谢您的回复。我刚刚补充了这一点,但问题依然存在。我记录了req,但文件数组中没有任何内容。这对我来说是一个巨大的节省。使用multer进行单文件上传工作正常,但由于某种原因,将其更改为
any
array
返回空文件。决斗文件上传中间件是罪魁祸首。谢谢