Node.js y Multer: maneja el destino del archivo cargado en la función de devolución de llamada (req, res)

Soy un novato en Node.js y últimamente me he encontrado con un problema muy simple.

Estoy usando un módulo llamado multer, para que los usuarios puedan subir imágenes. En mi aplicación web, todos los usuarios tienen una identificación única, y quiero que las imágenes cargadas se almacenen en un directorio llamado en función de su identificación.

Ejemplo:

.public/uploads/3454367856437534

Aquí está una parte de mi archivo routes.js:

// 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
    });
});

}

¿Cómo puedo acceder a

req.user._id 

fuera de la

function(req,res)

Entonces, ¿puedo usarlo con multer para generar el directorio adecuado basado en la identificación?

EDITAR Esto es lo que he intentado y no funcionó:

module.exports = function(app, passport) {

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

}

Respuestas a la pregunta(3)

Su respuesta a la pregunta