Tôi đang cố gắng để có một cơ chế tải lên tệp đơn giản hoạt động với Express 4.0 nhưng tôi vẫn tiếp tục sử undefineddụng req.filesphần app.postthân. Đây là mã có liên quan:
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
//...
app.use(bodyParser({ uploadDir: path.join(__dirname, 'files'), keepExtensions: true })); 
app.use(methodOverride()); 
//...
app.post('/fileupload', function (req, res) {
  console.log(req.files); 
  res.send('ok'); 
}); .. và mã Pug đi kèm:
form(name="uploader", action="/fileupload", method="post", enctype="multipart/form-data")
    input(type="file", name="file", id="file")
    input(type="submit", value="Upload")Giải pháp
 
Nhờ phản hồi của mscdex bên dưới, tôi đã chuyển sang sử dụng busboythay vì bodyParser:
var fs = require('fs');
var busboy = require('connect-busboy');
//...
app.use(busboy()); 
//...
app.post('/fileupload', function(req, res) {
    var fstream;
    req.pipe(req.busboy);
    req.busboy.on('file', function (fieldname, file, filename) {
        console.log("Uploading: " + filename); 
        fstream = fs.createWriteStream(__dirname + '/files/' + filename);
        file.pipe(fstream);
        fstream.on('close', function () {
            res.redirect('back');
        });
    });
});./files/thư mục trong thư mục chính của ứng dụng nếu không bạn sẽ gặp lỗi sau khi tải lên.