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

[Bug] erro no console. Ja tentei de tudo e não sei qual o problema.

conectaApi.js:16 Uncaught (in promise) TypeError: JSON.strigify is not a function at Object.criaVideo (conectaApi.js:16:20) at criarVideo (criarVideo.js:13:22) at HTMLFormElement. (criarVideo.js:20:49)

função conectaApi

async function listaVideos () {
    const conexao = await fetch ("http://localhost:3000/videos");
    const conexaoConvertida = await conexao.json(); //constante que armazena o array e o converte, com o json(), para um novo array que sera posteriormente exibido na tela

    return conexaoConvertida;
}

async function criaVideo(titulo, descricao, url, imagem) {
    const conexao = await fetch("http://localhost:3000/videos", {
        method: "POST",
        headers: {
            "content-type": "application/json" //estamos especificando o tipo de conteúdo que esta sendo enviado.
        },
        body: JSON.strigify({
            titulo: titulo,
            descricao: `${descricao} mil visualizações`,
            url: url,
            imagem: imagem
            //aqui estamos enviando o corpo da requisição (o body) e dentro das chaves estamos enviando um objeto
        })
    });

    //para se fazer outro tipo de requisição, o post, temos que que colocar entre chaves e fazer todas as configurações entre as chaves.

    const conexaoConvertida = await conexao.json();
    return conexaoConvertida;
}

export const conectaApi = {
    listaVideos,
    criaVideo
}

função criarvideo

import { conectaApi } from "./conectaApi.js";

const formulario = document.querySelector("[data-formulario]");

async function criarVideo(evento) {
    evento.preventDefault(); //impede o carregamento da pag quando se clicar no submit
    const imagem = document.querySelector("[data-imagem]").value;
    const url = document.querySelector("[data-url]").value;
    const titulo = document.querySelector("[data-titulo]").value;
    //atribuimos o data atributes as variaveis e com o ".value" vamos pegar o valor que sera digitado dentro do campo. Esse valor será atraibuido à variável.
    const descricao = Math.floor(Math.random()* 10).toString(); //gera um aleatorio, o mathfloor pega o menor numeuro, depois transfrmar-lo em string para passar para ".. visualizações"

    await conectaApi.criaVideo(titulo, descricao, url, imagem);

    //caso o envio seja feito com sucesso, redirecioaremos a pag:
    window.location.href = "../pages/envio-concluido.html";
}

//agora é preciso captar esses valores quando clicarmos no botão "enviar" a fim de enviar esses valores para o formulario e, assim, criando nosso novo video. 
formulario.addEventListener("submit", evento => criarVideo(evento));
5 respostas

Não seria: JSON.stringify ???

ué? mas é isso que está escrito..

para mim tá faltando letra...olha lá....

Meu Deus era isso mesmo KKKKKKKKKKKKKKKKK

faltou o "n".

Obrigado amigo!!

solução!

Cara! Ainda, passaremos por isso várias vezes! TMJ!!!