Javascript 尝试使用节点js将文件上载到服务器时,req.files为空

Javascript 尝试使用节点js将文件上载到服务器时,req.files为空,javascript,html,node.js,file,Javascript,Html,Node.js,File,HTML: 我还使用: app.post('/uploadpic', function(req,res) { console.log(req.files); console.log(req.body);}); 在控制台中,我得到: var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded()); app.use(bodyParser.json()) app.use(express.bodyParser({upl

HTML:

我还使用:

app.post('/uploadpic', function(req,res) {
console.log(req.files);
console.log(req.body);});
在控制台中,我得到:

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded());
app.use(bodyParser.json())
app.use(express.bodyParser({uploadDir:'./uploads'}));
app.use(bodyParser.json({ type: 'application/vnd.api+json' }))

我似乎不明白这里有什么问题。。谢谢

BodyParser不包括文件上载。你需要使用类似或的东西


此外,express(4.0+)不再与中间件捆绑在一起,因此您需要使用它来处理POST请求。

您使用的是哪个版本的express?我使用BodyParser与Express 3一起上传文件*我使用Express 3。如何使用主体解析器上传文件?
{}
{}
{}
{}
   var fs = require('fs');

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

    //req.files contains array of files iterate and get it
    //if it has only one. it is like object

    //here is the code for object

    if (req && req.files) {

     var contentType = req.files.file.type;    
     var fname = req.files.file.name;    
     var image_path = req.files.file.path;    
     fs.readFile(image_path, function (err, data) { 
      var data = data; //this is your data use this
     })

    }

})