Problem Getting Multer body from post from Angular

Viewed 17

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
    })
}
0 Answers
Related