Sunday, 30 April 2017

How to parse formdata on node serverside?

I'm using nodejs, REACT, express, axios.. I want to make upload function, but i can't. when i upload file, server cannot parse the uploaded file.(only shows {} log)

below is my frontend code

when user click UPLOAD button on form element, 'handleSubmit' function is called, and 'handleSubmit' calls 'fileUploadRequest' function.

In 'fileUploadRequest' function, everything is good. I can see infomations of attached file.

<form onSubmit={this.handleSubmit} encType='multipart/form-data'>
                    <input type="file" onChange={this.handleChange}/>
                    <input type="submit" value="UPLOAD"/>
</form>

export function fileUploadRequest(username, uploadFile, uploadFileName) {
    return (dispatch) => {
        dispatch(fileUpload());

        let formData = new FormData();
        formData.append('fileName', uploadFileName);
        formData.append('fileHandler', uploadFile);

        return axios.post('/upload/upload', {formData})
        .then((response) => {
            dispatch(fileUploadSuccess());
        }).catch((error) => {
            dispatch(fileUploadFailure());
        });
    };
}

below is backend code.

router.post('/upload', (req, res) => {

    console.log(req.body.);

    var form = new formidable.IncomingForm();
    form.parse(req, (err, fields, files) => {
        console.log('parse');
        console.log(fields);
        console.log(files);
    });
});

on req.body log, I can see only '{ formData: {} }' log...

'fields' and 'files' are all '{}' on log

How can i parse attached file on server? Please let me know T_T



via Jihwan Kim

No comments:

Post a Comment