Im sending from Angular a file via FormData and with Multer to get the data.
But, I cant get the text fields from the body I got Object: null prototype] {}.
On Angular i have the following code
createNote(content:any,courseid: number) {
let file:Blob = new Blob([content],{type:'text/markdown'})
let formData:FormData = new FormData();
formData.append('note',file,'filename.md')
let params = new HttpParams()
const options = {
params: params,
reportProgress: true
}
const apiurl = `${ this.apiUrl}/course/${courseid}/note`
console.log('EL CONTENT')
console.log(formData)
this.http.post(apiurl,formData,options).subscribe()
}
On NodeJS I have the following
Multer middleware
const path = require('path')
const multer = require('multer')
var mime = require('mime-types')
let storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, "uploads")
},
filename: (req, file, cb) => {
let courseid=req.params.id
cb(null,file.fieldname+"-"+courseid+'-'+Date.now()+'.'+path.extname(file.originalname));
},
});
let upload = multer({storage:storage});
module.exports = upload
On the routes files
router.post("/course/:id/note",upload.single("note"),createNote)
And the following code
const createNote = async (req = request, res = response) => {
const courseid = req.params.id
console.log(req.body)
let data = processIncommingData(courseid,req.body)
res.status(200).json({
data
})
}