8

私は Node.js を初めて使用し、最近単純な問題に遭遇しました。

モジュールを使用multerして画像をアップロードしています。私の Web アプリでは、すべてのユーザーに一意の ID があり、アップロードされた画像をディレクトリに保存して、ID に基づいて名前を付けたいと考えています。

例:

.public/uploads/3454367856437534

ここに私の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
    });
});

}

id に基づいて適切なディレクトリを生成するためにreq.user._id、 callback の外で属性にアクセスするにはどうすればよいですか?function(req, res)multer

編集これが私が試したもので、うまくいかなかったものです:

module.exports = function(app, passport) {

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

}
4

3 に答える 3