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

upload de arquivo não é função

Oi alguém pode me ajudar?.. vi revi e não achei diferença do código do vídeo

{ //isso é o que eu coloco no insomnia
    "nome": "harry",
    "imagem": "./assets/salsicha.jpg"
}
TypeError: uploadDeArquivo is not a function
    at Pet.adiciona (C:\Users\User\Desktop\NodeREST\models\pets.js:9:9)
    at C:\Users\User\Desktop\NodeREST\controllers\pets.js:7:13
    at Layer.handle [as handle_request] (C:\Users\User\Desktop\NodeREST\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\User\Desktop\NodeREST\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\User\Desktop\NodeREST\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\User\Desktop\NodeREST\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\User\Desktop\NodeREST\node_modules\express\lib\router\index.js:281:22    at Function.process_params (C:\Users\User\Desktop\NodeREST\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\User\Desktop\NodeREST\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\User\Desktop\NodeREST\node_modules\body-parser\lib\read.js:130:5
2 respostas
const conexao = require('../infraestrutura/conexao')

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

class Pet{
    adiciona(pet, res){
        const query = 'INSERT INTO Pets SET ?'

        uploadDeArquivo(pet.imagem, pet.nome, (novoCaminho) =>{
            const novoPet = {nome: pet.nome, imagem: novoCaminho}
            conexao.query(query, novoPet, erro =>{
                if(erro){
                    res.status(400).json(erro)
                }else{
                    res.status(200).json(novoPet)
                }
            })
        })

    }
}
module.exports = new Pet()

-----------------------------------------------------------------------------------
const fs = require('fs')
const { Module } = require('module')

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

    const novoCaminho = `../assets/imagens/${nomeDoArquivo}`
        fs.createReadStream(caminho)
        .pipe(fs.createWriteStream(novoCaminho))
        .on('finish', () => callbackImagemCriada(novoCaminho))
}
----------------------------------------------------------------------------------
const Pet = require('../models/pets')

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

        Pet.adiciona(pet, res)
    })
}
solução!

Boa tarde Jefferson, tudo certo?

Eu tenho uma suspeita: creio que no arquivo arquivos/uploadDeArquivos.js você tenha escrito module.exports incorretamente. Tente trocar a letra m para minúsculo e veja se isso resolve seu problema. Erros assim são muito comuns e podem causar esses comportamentos inesperados e bem difíceis de encontrar.

Espero ter ajudado e bons estudos!

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