То, что вы делаете с обнаружением изменений, верно.
Просто вам нужно будет создать данные формы и отправить эти данные вместе с вашим запросом на публикацию.
Вам не нужно устанавливать тип контента на своей угловой стороне, Angular сделает эту работу за вас.
Я предоставляю вам пример моего углового узла, надеюсь, это поможет вам.
В моем примере я использовал multer для хранения файла.
Пример
Угловая составляющая
// Create Variable for your file and formdata.
selectedFile: File = null;
fd = new FormData();
constructor(private http: HttpClient){}
// Once the file change is detected append your file to your formdata and on submit post the request.
handleFileInput(event) {
this.selectedFile = <File>event.target.files[0];
this.fd.append('file', this.selectedFile, this.selectedFile.name);
}
onSubmit() {
this.http.post(url, this.fd)
.subscribe((data)=>{console.log(data);});
}
Файл маршрута узла.
var multer = require("multer");
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './upload')
},
filename: function (req, file, cb) {
cb(null, file.originalname)
}
})
const upload = multer({
storage: storage
});
var fs = require('fs');
router.post('/uploadprofile', auth, upload.single('image'), (req, res) => {
res.send('file uploaded');
});