Node.js и Multer - обрабатывают место назначения загруженного файла в функции обратного вызова (req, res)
Я новичок в Node.js, и в последнее время у меня возникла очень простая проблема.
Я использую модуль с именем multer, чтобы пользователи могли загружать изображения. В моем веб-приложении все пользователи имеют уникальный идентификатор, и я хочу, чтобы загруженные изображения были сохранены в каталоге, названном на основе их идентификатора.
Пример:
.public/uploads/3454367856437534
Вот часть моего файла rout.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
});
});
}
Как я могу получить доступ к
req.user._id
вне
function(req,res)
Так что я могу использовать его с Multer для создания правильного каталога на основе идентификатора?
РЕДАКТИРОВАТЬ Вот то, что я пытался и не работал:
module.exports = function(app, passport) {
app.post('/', function(req, res) {
app.use(multer({
dest: './public/uploads/' + req.user._id
}));
});
}