Expressjs para fazer upload de uma imagem usando multer salva uma imagem em um formato estranho
Estou tentando criar uma API que terá a imagem usada na multer usada para esse fim. Estou conseguindo fazer o upload de uma imagem, mas ela salva em algum formato estranho, não no formato real que tentei salvar. Vou postar o código relacionado aqui.
no app.js
const multer = require('multer');
app.use(function(req, res, next) { //allow cross origin requests
res.setHeader("Access-Control-Allow-Methods", "POST, PUT, OPTIONS, DELETE, GET");
res.header("Access-Control-Allow-Origin", "http://localhost:3001");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Credentials", true);
next();
});
app.use(express.static('../client'));
app.use(bodyParser.json());
app.use(multer({dest:'./angular-src/src/assets/'}).single('file'));
app.use(express.static(path.join(__dirname,'public')));
No arquivo API
const express = require('express');
const router = express.Router();
const multer = require('multer');
const storage = multer.diskStorage({ //multers disk storage settings
filename: function (req, file, cb) {
cb(null, file.originalname);
}
});
const upload = multer({
storage: storage
}).single('file');
router.post('/upload',function (req,res) {
upload(req,res,function (err) {
if (err){
res.json({success:false});
return;
}else{
// console.log(req.files[0].originalname);
res.json({success: true, filename: req.file});
}
});
});
module.exports = router;
A imagem armazenada fica assim
O segundo, que possui caracteres alfanuméricos.
Os dados da imagem são mais ou menos assim
{
"_type": "Project",
"_id": "AAAAAAFF+h6SjaM2Hec=",
"name": "Untitled",
"ownedElements": [
{
"_type": "UMLModel",
"_id": "AAAAAAFF+qBWK6M3Z8Y=",
"_parent": {
"$ref": "AAAAAAFF+h6SjaM2Hec="
},
"name": "Model",
"ownedElements": [
{
"_type": "UMLClassDiagram",
"_id": "AAAAAAFF+qBtyKM79qY=",
"_parent": {
"$ref": "AAAAAAFF+qBWK6M3Z8Y="
},
"name": "Main",
"visible": true,
"defaultDiagram": true
},
É assim que estou ligando do carteiro