1

I am new to Nodejs and trying to send file received through multer to google drive. However I am setting

var media = {
               mimeType: req.file.mimetype,
               body:req.file
            };

Which is giving me error as

enter image description here

const index = require('../index.js');
const { google } = require('googleapis');

let drive = google.drive('v3');
const receive = multer();

router.post("/insertNewProduct", auth, receive.single('productUrl'), async (req, res) => {
    try { 
        
                const data = req.body;
                var folderId = '1v3tdYH_GLtCOOxhQ8HXDdRAb-2Jh455_';
                let fs = require('fs')
                var fileMetadata = {
                    'name': new Date().toISOString()+req.file.filename,
                    parents: [folderId]
                };
                var media = {
                    mimeType: req.file.mimetype,
                    body:req.file
                };
                drive.files.create({
                    auth: index.jwtClient,
                    resource: fileMetadata,
                    publishAuto: true,
                    media: media,
                    fields: 'id'
                },
                 async function (err, file) {
                        if (err) {
                            // Handle error
                            console.error(err);
                        }
                        else {

                            console.log('********File create success. File Id: ', file.data.id);
                            res.status(201).send({
                                message: "Record Create Successfully",
                                data: newRows
                            });
                       }

                    }
                      );
              }  
        }
   
    } catch (e) {
        console.log("Inside catch: " + e);
        res.status(404).send({
            message: e,
            data: {}
        });
    }
});

As I understand the error, how I set the body:req.file is wrong. Here's how req.file look like.

enter image description here

How can I pass req.file to

 var media = {
                    mimeType: req.file.mimetype,
                    body:req.file
                };

I tried body:req.file.buffer but it didn't work.

Archit Sandesara
  • 605
  • 1
  • 12
  • 25

0 Answers0