Node.js und Multer - Behandeln Sie das Ziel der hochgeladenen Datei in der Rückruffunktion (req, res)

Ich bin ein Neuling in Node.js und bin in letzter Zeit auf ein sehr einfaches Problem gestoßen.

Ich verwende ein Modul namens Multer, damit Benutzer Bilder hochladen können. In meiner Web-App haben alle Benutzer eine eindeutige ID, und ich möchte, dass die hochgeladenen Bilder in einem Verzeichnis gespeichert werden, das auf der ID basiert.

Beispiel

.public/uploads/3454367856437534

Hier ist ein Teil meiner routes.js-Datei:

// load multer to handle image uploads
var multer  = require('multer');
var saveDir = multer({
  dest: './public/uploads/' + req.user._id, //error, we can not access this id from here
  onFileUploadStart: function (file) { 
  return utils.validateImage(file); //validates the image file type
  }
});

module.exports = function(app, passport) {

app.post('/', saveDir, function(req, res) {
                id     : req.user._id,  //here i can access the user id
    });
});

}

Wie kann ich auf das @ zugreife

req.user._id 

außerhalb des

function(req,res)

So kann ich es mit Multer verwenden, um das richtige Verzeichnis basierend auf der ID zu generieren?

BEARBEITE Hier ist, was ich versucht habe und nicht funktioniert hat:

module.exports = function(app, passport) {

app.post('/', function(req, res) {
    app.use(multer({
        dest: './public/uploads/' + req.user._id
    }));
});

}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage