Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Pets continuam sendo salvos mesmo sem estar nos formatos previstos

Meus pets continuam sendo salvos mesmo estando em formatos inválidos

uploadDeArquivos.js

const fs = require('fs')
const path = require('path')

module.exports = (caminho, nomeDoArquivo, callbackImagemCriada) => {

    const tiposValidos = ['jpg', 'png', 'jpeg']
    const tipo = path.extname(caminho)
    const tipoEhValido = tiposValidos.indexOf(tipo.substring(1))

    if(tipoEhValido === -1) {
        console.log('Erro! Tipo inválido')
    } else {
        const novoCaminho = `./assets/images/${nomeDoArquivo}${tipo}`

        fs.createReadStream(caminho)
            .pipe(fs.createWriteStream(novoCaminho))
            .on('finish', () => callbackImagemCriada(novoCaminho))
    }
}

models/pets.js

const conexao = require('../infra/conexao')
const uploadDeArquivos = require('../models/pets')

class Pet {

    adiciona(pet, res) {
        const sql = 'INSERT INTO Pets SET ?'

        uploadDeArquivos(pet.imagem, pet.nome, (novoCaminho) => {
            const novoPet = {nome: pet.nome, imagem: novoCaminho}

            conexao.query(sql, pet, erro => {
                if(erro) {
                    console.log(erro)
                    res.status(400).json(erro)
                } else {
                    res.status(200).json(novoPet)
                }
            })
        })
    }

}

module.exports = new Pet

controllers/pets.js

const Pet = require('../models/pets')

module.exports = app => {
    app.post('/pet', (req, res) => {
        const pet = req.body

        Pet.adiciona(pet, res)
    })
}

Oque estou fazendo errado?

Obrigado desde já :)

2 respostas
solução!

Oi Gabriel.. No teu models/pets.js , você está importando o uploadDeArquivo com o caminho do teu pets.js

O correto seria

const uploadDeArquivo = require('../arquivos/uploadDeArquivos')

Realmente, foi uma distração minha.

Muito obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software