2
respostas

Api com imagens

Olá, eu estou tentando desenvolver uma api em node.js. No entanto, eu criei um esquema no mongo para o armazenamento da coleção.

var mongoose = require('mongoose');

var Schema = mongoose.Schema;

var CursoSchema = new Schema({
    nome: String,
    urlImagem: String,
    descricao: String
});
module.exports = mongoose.model('Curso', CursoSchema);

E criei um controller que fica responsavel pelas ação de requisição do CRUD.

exports.save = function(nome, urlImagem, descricao, callback){
             new Curso({
            'nome' : nome,
            'urlImagem' : urlImagem,
            'descricao' : descricao 
            }).save(function(err, data){
            if(err){
                callback({erro: 'Não foi possivel salvar'})
            }else{
                callback(data);
            }
        });
    }
...

E a seguinte rota:

app.post('/cursos/cadastra', function(req, res){
        var nome = req.body.nome;
        var urlImagem = req.body.urlImagem;
        var descricao = req.body.descricao;

        cursoController.save(nome, urlImagem, descricao, function(err, resp){
            if(err){
                console.log(err);
            }else{
                res.json(resp);
            }
        });
    });

Eu consigo armazenar a url da imagem (tudo bem). Mas eu quero que os clientes que irão consumir essa api vejam a imagem e não a url. Como posso fazer nesse caso? Creio que o problema esteja, no lado do servidor e não do cliente, mas não consigo de jeito nenhum fazer a imagem aparecer.

2 respostas

Acho que esse tópico pode te ajudar => https://cursos.alura.com.br/forum/topico-download-com-node-27093

Dado que vc tem a url, vc pode carregar os bytes da imagem e liberar para download.. não entendi muito bem o motivo, mas vc que manda.

Na verdade, gostaria mesmo era de eu poder cadastrar os dados do meu esquema no mongo através de um cliente qualquer utilizando o post e que a imagem pudesse ser visualizada por qualquer outro cliente. Mas se você tiver outras idéias por favor. Não quero que seja feito o download da imagem, apenas visualizada em um

<img src"...">

qualquer de um cliente.