2017-11-10 6 views
1

ノードjsサーバーに2つのファイルをアップロードしようとしています。私は、リクエストからデータを受け取るためにmulterを使用します。これは私のエンドポイントである:ノードjsが複数のメッセージを受け取るパラメータが未定義

 app.post('/testFile', imageUpload.fields([{name:'image',maxCount:1},{name:'image2',maxcount:1}]), function(req, res, next){ 
     res.sendStatus(201); 
    }); 

そして、私はmulter設定しているところです。

var somevariable= multer({ 
storage: multer.diskStorage({ 
    destination: (req, file, callback) => { 
    var x= req.body.x; 
    var y= req.body.y; 
    var path = `./resources/pics/${x}/${y}`; 
    fs.mkdirsSync(path); 
    callback(null, path); 
    }, 
    filename: (req, file, callback) => { 
    callback(null, file.originalname); 
    } 
}) 
}); 

をそして、私はいくつかの奇妙な行動を持っています。最初の画像を処理すると、xとyの両方のパラメータが「未定義」になります。しかし、私のプロセスが2番目のイメージに到達すると、渡された値をxとy変数で得ることができます。なぜこれが起こっているのか誰かが私に説明することはできますか?

答えて

1

このようにmusterを使用してください。

var storage = multer.diskStorage({ 
    destination: 'destinationPath' 
}); 
var upload = multer({ 
    storage: storage 
}).any(); 
upload(req, res, function(err) { 
    if (err) { 
     console.log(err); 
     return res.end('Error'); 
    } else { 
     // your code goes here 
    } 
} 
関連する問題