Pessoal, Boa tarde!
Estou modularizando um código... e gostaria da ajuda dos Srs para entender esse problema e achar uma solução. Upload de Imagens no google cloud entre módulos, o meu cenário;
model-storage.js => arquivo responsável por fazer o upload da imagem no google storage.
'use strict';
const Storage = require('@google-cloud/storage');
const config = require('./../../config');
const storage = Storage({
projectId: config.get('GCLOUD_PROJECT'),
keyFilename: 'keyfile.json'
});
const bucket = storage.bucket(config.get('CLOUD_BUCKET'));
function getPublicUrl(destination) {
return `https://storage.googleapis.com/${config.get('CLOUD_BUCKET')}/${destination}`;
}
function uploadFile(files, destination, cb) {
if (!files.path_ebd.path) {
console.log('Arquivo não enviado');
return;
}
let images = `${destination}/${files.path_ebd.name}`;
bucket.upload(
files.path_ebd.path,
{
public:true,
destination: images
},
(err, file) => {
if (err) {
console.log(err);
return;
}
file.imageURL = getPublicUrl(images)
console.log(file);
});
}
module.exports = {
uploadFile
};
escola-dominical.js => Rota responsável por receber o arquivo e chamar o método de upload da imagem.
app.post('/admin-ipp/admin/escola-dominical/save', (req, res) => {
var form = new formidable.IncomingForm();
form.keepExtensions = true;
form.parse(req, function (err, fields, files) {
var dados = fields;
app.persistencia.modelStorage.uploadFile(files, 'escola_dominical', (error, file) => {
if (error) {
console.log(error);
return;
}
console.log('Voltei');
});
});
});
Quando nessa rota faço a chamada do modulo uploadFile, a mensagem não retorna, penso que para isso é necessário implementar o callback... alguém pode ajudar a entender e uma ajuda como isso poderia ser feito?
Detalhe o upload da imagem é realizado no google cloud.
Att,