将文件夹名称更改为请求中发送的名称

Change folder name formidable to name sent in request

我想将文件上传到请求中指定的文件夹名称(在名称字段中)。

我曾尝试添加 req.body.name,但它是 未定义

这是我的代码

var mongoose = require('mongoose');
var DataBase = require('../models/resource').DataBase;
var formidable = require('formidable'),
    http = require('http'),
    util = require('util');
var mkdirp = require('mkdirp');
var fs = require('fs');
exports.upload = function (req, res) {
var uploadDir = './uploads/databses/'+req.body.name; 
 mkdirp(uploadDir, function (err) {
    if (err) return cb(err);
  var form = new formidable.IncomingForm({ 
  uploadDir: uploadDir,
  keepExtensions: true
});
form.on('progress', function(bytesReceived, bytesExpected) {
    console.log(100 * bytesReceived / bytesExpected + '%');
});
form.parse(req, function(err, fields, files) {      
        res.writeHead(200, {
            'content-type': 'text/plain'
        });
        res.write('received upload:\n\n');
        res.end(util.inspect({
            fields: fields,
            files: files
        }));
    });

});
};

请帮忙。

我找到的解决方案是将创建的文件夹移动到新文件夹

        var uploadDir = './uploads/databses/temp/'; 

        var form = new formidable.IncomingForm({ 
        uploadDir=uploadDir,    
        keepExtensions: true
        });
        form.on('progress', function(bytesReceived, bytesExpected) {
        console.log(100 * bytesReceived / bytesExpected + '%');
        });
        form.parse(req)     
        .on('field', function(name, fields) {
        var body = JSON.parse(fields);

        uploadDir='./uploads/databses/'+body.nameOfFolder+'/';
        form.uploadDir=uploadDir; 
        }).on('file', function(name, files) {
        //moving temp to new folder
        mv('./uploads/databses/temp',  form.uploadDir, {mkdirp: true}, 
        function(err) {

        });
         res.end(util.inspect({
        files: files
        }));
        })
        .on('error', function(err) {
        next(err);
        })
        .on('end', function() {
        res.end();
        });