Я подготовил форму, которая принимает три значения и один файл в качестве ввода в angular2, и я могу принять файл в качестве ввода и добавить его в formData.Тем не менее, я не могу добавить formData с другими значениями.т.е. моя функция fileUpload, которая присутствует на стороне сервера - NodeJS, не распознает эти данные.Я имею в виду, я не знаю, как получить его данные там в файле server.js.
угловой код -
app.component.ts
filesToUpload: Array<File> = [];
upload(value) {
const formData: any = new FormData();
const files: Array<File> = this.filesToUpload;
var data = [];
console.log("inside upload, knowledge of the file =", files);
var checkFileNameTrue = value.addFile;
console.log(" inside upload, this.checkFileName = ", checkFileNameTrue );
this.checkFileName = files[0].name;
console.log(" inside upload, this.checkFileName = ", this.checkFileName);
}
for (let i = 0; i < files.length; i++) {
formData.append("uploads[]", files[i], files[i]['name']);
console.log("inside upload, formData = ", formData);
}
console.log("files.length = ", files.length);
console.log("value.addOrganisation = ", value.addOrganisation)
var length = files.length
formData.append("uploads[]", data[0], value.addOrganisation);
formData.append("uploads[]", data[1], value.addDepartment);
formData.append("uploads[]", data[2], value.addSystem);
this.wsdlValue = {
'formData': formData,
'addOrganisation': value.addOrganisation,
'addDepartment': value.addDepartment,
'addSystem': value.addSystem,
};
console.log("this.wsdlValue = ", formData)
this.http.post('http://localhost:3003/upload', formData)
.map(files => files)
.subscribe(files => {
console.log('files', files)
this.uploadFileName = files[0].filename;
this.uploadPath = files[0].path;
this.shareData.uploadedFiles.push(this.uploadFileName);
this.shareData.uploadedPaths.push(this.uploadPath);
})
}
}
код nodeJs
server.js
//code
var upload = multer({ storage: storage });
app.post("/upload", upload.array("uploads[]", 12), function (req, res) {
console.log("request = ", req)
fileName = req.files[0].path;
organisation = req.data[0];
department = req.data[1];
system = req.data[2];
console.log("organisation =", organisation , " department = ", department, " system = ", system)
myModuleYaml.defineRoutes(router, fileName);
console.log("global variable FileName = ", fileName)
res.send(req.files);
});
вывод server.js -
TypeError: Cannot read property '0' of undefined
Line - fileName = req.files[0].path;