Первое, что я делаю, это отправить идентификатор папки с модулем загрузки ng-file.Почему не удается прочитать данные, отправленные вместе с файлами?
file.upload = Upload.upload({
url: '/api/files/upload',
method: 'POST',
data: {
file: file,
folderId: currentFolder // This is the information I want to receive
}
})...;
Я получаю информацию по следующему маршруту:
router.route('/api/files/upload').post(files.uploadFiles);
Тогда, когда я пытаюсь проверить информацию, идентификатор не существует!
Но самое странное, что в других частях кода я могу получить идентификатор, это очень запутанно. Вы можете посмотреть на фотографии, чтобы понять меня лучше.
Вот код для загрузки файла:
var path = require('path');
var fs = require('fs');
var mongoose = require('mongoose');
var _ = require('lodash');
var async = require('async');
var multer = require('multer');
var errorHandler = require('./errorhandler.server.controller.js');
var Files = mongoose.model('Files');
var storage = multer.diskStorage({
destination: function(req, file, cb) {
//
// req.body.folderId EXISTS !!!
// but I don't understand why don't exist in the other places
// you can see the picture 2
//
cb(null, path.resolve(req.ubicacion));
},
filename: function(req, file, cb) {
cb(null, file.originalname);
}
});
var upload = multer({
storage: storage,
fileFilter: function(req, file, cb) {
//
// req.body.folderId doesn't exist
//
fs.exists(req.ubicacion + file.originalname, function(exists) {
if (exists) {
return cb(new Error('Ya existe ' + file.originalname));
}
cb(null, true);
});
}
}).any();
/**
*
*/
exports.uploadFiles = function(req, res) {
async.waterfall([
function(cb) {
//
// req.body.folderId doesn't exist
// you can see the picture 1
//
var id = req.body.folderId;
Files.findById(id, function(err, result) {
if (err) {
return cb(err);
}
req.ubicacion = result.ubicacion;
cb(null);
});
},
function(cb) {
upload(req, res, function(err) {
if (err) {
return cb(err);
}
cb(null);
});
},
function(cb) {
var file = new Files({});
file.save(function(err, result) {
if (err) {
return cb(err);
}
cb(null, result);
});
}
], function(err, result) {
if (err) {
return res.status(400).send({
err: errorHandler.getErrorMessage(err)
});
}
res.status(201).json(result);
});
};