-1

This is my current code. It does not work. I post the image in form data.

My Questions are:

  1. How can i see the form data in node.js (try log req.body and it is an empty object)
  2. What does the "demo.jpg" in the code mean?

NODEJS

var aws = require('aws-sdk');
const express = require('express');
const router = express.Router();
aws.config.update({
    "accessKeyId": "<MY_KEY>",               
    "secretAccessKey": "<MY_SECRET>"
});




router.post('/', (req, res, next) => {
    console.log(res.body)
    var s3 = new aws.S3();

    var params = {
        Bucket: "passwordapp",
        Key: 'aaaaaa',
        Expires: 60,
        ContentType: 'jpg'
    };

    s3.getSignedUrl('demo.jpg', params, function(err, data) {
        //console.log("err",err);

        if (err) {
            res.json(err)
        } else {
            res.json(data)
        }
    });
});


  module.exports = router;

enter image description here

24sharon
  • 1,859
  • 7
  • 40
  • 65

1 Answers1

-1

Ok got the solution from here:

https://stackoverflow.com/a/54402849/1230198

use multer

this is my WORKING code:

const express = require('express');
const router = express.Router();

const AWS = require('aws-sdk');
const multer = require('multer');
const storage = multer.memoryStorage()
const upload = multer({storage: storage});

const s3Client = new AWS.S3({
    "accessKeyId": "<KEY>",               
    "secretAccessKey": "<SECRET>"
});

const uploadParams = {
         Bucket: 'passwordapp', 
         Key: '', // pass key
         Body: null, // pass file body
};



router.post('/', upload.single("image"),(req, res, next) => {

    const params = uploadParams;

    uploadParams.Key = req.file.originalname;
    uploadParams.Body = req.file.buffer;
    s3Client.upload(params, (err, data) => {
        if (err) {
            res.status(500).json({error:"Error -> " + err});
        }
        res.json({message: 'File uploaded successfully','filename': 
        req.file.originalname, 'location': data.Location});
    });




});


  module.exports = router;
24sharon
  • 1,859
  • 7
  • 40
  • 65