Ситуация
Я реализовал загрузку файлов. Интерфейсный код взят из популярного учебника. Отправляю POST в сервис:
myApp.service('fileUpload', ['$http', function ($http) {
this.uploadFileToUrl = function(file, uploadUrl){
var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
})
.success(function(){
})
.error(function(){
});
}
}]);
Типичное использование мультипликатора в бэкенде:
exports.postFile = function (req, res) {
var storage = multer.diskStorage({ //multers disk storage settings
destination: function (req, file, cb) {
cb(null, '../documents/')
},
filename: function (req, file, cb) {
cb(null, file.originalname)
}
});
var upload = multer({ //multer settings
storage: storage
}).single('file');
upload(req, res, function (err) {
if (err) {
res.json({error_code: 1, err_desc: err});
return;
}
res.json({error_code: 0, err_desc: null});
})
};
Это работает.
Вопрос
Как отправить некоторые данные в том же POST, скажем, строку "additional info"
?
Что я пробовал
Я попытался добавить данные в службу, т.е.:
...
var fd = new FormData();
fd.append('file', file);
fd.append('model', 'additional info');
$http.post(uploadUrl, fd, {...})
Вроде отправил, а как получить в бекенде не знаю. Пытался найти его в req
(безуспешно).