3
respostas

Bug: Vídeos não carregam

Bom dia os vídeos dá minha página não estão carregando.

LInk do meu projeto no Github: https://github.com/Carloshbfreire/aluraplay-requisicoes-main

3 respostas

Oi, Carlos, tudo bem?

No seu código, no arquivo "conectaApi.js", você está utilizando a porta 3001. No entanto, o json-server, por padrão, abre na porta 3000. Para corrigir, uma opção é ao executar o json-server, especificar a porta 3001, exemplo:

json-server --watch .\db.json --port 3001

Outra opção, é alterar o código de "conectaApi.js" para rodar na porta padrão, que é a 3000, ex:

const conexao = await fetch("http://localhost:3000/videos")

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Troquei as portas e continua com erro, os vídeos não aparecem. ![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade ) vou te passar os meus códigos.

Index.HTML

<!DOCTYPE html>
<html lang="pt-br">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="./css/reset.css">
    <link rel="stylesheet" href="./css/estilos.css">
    <link rel="stylesheet" href="./css/flexbox.css">
    <title>AluraPlay</title>
    <link rel="shortcut icon" href="./img/favicon.ico" type="image/x-icon">
</head>

<body>

    <header>

        <nav class="cabecalho">
            <a class="logo" href="./index.html"></a>

            <div class="cabecalho__pesquisar">

                <input type="search" placeholder="Pesquisar" id="pesquisar" class="pesquisar__input">
                <button class="pesquisar__botao">

            </div>

            <div class="cabecalho__icones">
                <a href="./pages/enviar-video.html" class="cabecalho__videos"></a>
            </div>
        </nav>

    </header>

    <ul class="videos__container" alt="videos alura" data-lista>
      
    </ul>
    <script src="./jp/mostrarVideos.js" type="module"></script>
</body>

</html>

mostrarVideos.js

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

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

function constroiCard(titulo, descricao, url, imagem){
    const video = document.createElement("li")
    video.className = "videos__item"
    video.innerHTML =  `<iframe width="100%" height="72%" src="${url}"
                title="${titulo}" frameborder="0"
                allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
                allowfullscreen></iframe>
                <div class="descricao-video">
                <img src="${imagem}" alt="logo canal alura">
                <h3>${titulo}</h3>
                <p>${descricao}</p>
            </div>`   
     
    return video
}

async function listaVideos(){
    const listaApi = await conectaApi.listaVideos()
    listaApi.forEach(elemento => lista.appendChild(constroiCard(elemento.titulo, elemento.descricao, elemento.url, elemento.imagem)))     
    
}

listaVideos()

conectaApi.js

async function listaVideos() {
    const conexao = await fetch("http://localhost:3002/videos")
    const conexaoConvertida = await conexao.json()

    return conexaoConvertida
}

export const conectaApi = {
    listaVideos

}

Oi, Carlos,

Desculpa a demora em te responder!

No código que chama a API, que está no arquivo "conectaAPI", você está utilizando a porta 3002 do localhost. Então para que você consiga fazer com que os vídeos sejam disponibilizados na tela, precisamos rodar a API com o json-serverpor meio do comando:

json-server --watch db.json --port 3002

Lembre-se que a porta de saída que você colocar na requisição assíncrona, precisa ser a mesma que está rodando no seu terminal com o json-server. Outro ponto importante é manter o json-serverrodando durante o desenvolvimento e sempre que você quiser utilizar o site, caso contrário os vídeos não irão aparecer e você terá um erro de requisição 404, onde os vídeos não são encontrados.

Além disso, sempre que você fizer sair fechar o json-servere abrir denovo é necessário clicar no botão de recarregar a página no seu navegador ou usar o atalho "CTRL R".

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!