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

Bug de carregamento

Aparece o seguintes erros no console Insira aqui a descrição dessa imagem para ajudar na acessibilidade

async function listaVideosApi() {
    const conexao = await fetch("http://localhost:3000/videos");
    const conexaoConvertida =  await conexao.json();

    return conexaoConvertida;
} 
export const conectaApi = {
    listaVideosApi
}
import { conectaApi } from "./conectaApi";

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

function constroiCard(titulo,descricao,url,imagem) {
    const video = document.createElement("li");
    video.className = "video__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.listaVideosApi();
    listaApi.forEach(element => lista.appendChild(
        constroiCard(
           elemento.titulo,elemento.descricao,elemento.url,elemento.imagem
        )));
 }
 listaVideos
<!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="js/mostrarVideos.js" type="module"></script>
</body>
</html>
2 respostas
solução!

E aí, Gabriel!

Esse erro acontece quando o servidor não tá configurado direito pra mandar o JavaScript como módulo ES6. Então, primeiro, vê se teu servidor local tá mandando o JavaScript com o tipo MIME certo. Se tu tá usando Node.js com Express, pode ser que ele já resolva isso de boa. Mas se for algo diferente ou uma configuração customizada, talvez precise mexer um pouco nas configurações.

Outra coisa, confirma se o caminho do módulo tá certinho. Vi que tá apontando pra "http://127.0.0.1:5500/js/conectaApi". Vê se o arquivo realmente tá lá nesse lugar e se não rolou nenhum erro de digitação ou algo do tipo.

Ah, e no teu HTML, quando tu coloca o script que usa módulos ES6, tem que garantir que tá usando o type="module" na tag <script>.

<script src="js/mostrarVideos.js" type="module"></script>

Parece que já tá fazendo isso, mas é sempre bom dar uma conferida pra não ter erro.

Se tu tiver acesso às configurações do servidor, dá uma checada pra ver se os headers HTTP pro JavaScript tão sendo enviados com o tipo MIME correto.

Se mesmo assim continuar dando ruim, pode ser uma boa dar uma olhada na documentação do servidor ou procurar mais informações sobre como configurar os tipos MIME pra módulos ES6.

Espero que essas dicas ajudem a resolver o problema, tá ligado? Boa sorte aí e qualquer coisa, tamo junto!

Consegui resolver o problema, realmente estava faltando o .js ao referenciar o outro arquivo