Задать вопрос

Как отобразить данные с Rest API сервера на html странице?

Мне нужно отобразить инфо-карточки, вытаскивая данные с одного сервера, сохранить их на своем и вывести их на страницу.
Я создала сервер и HTML страницу, прописала взятие денных, добавление елементов на страницу, но не могу понять чего не хватает, чтобы карточки добавлялись в DOM.

server
const express = require('express');
const path = require('path');
const app = express();
const server = require('http').Server(app);
const fetch = require("node-fetch");
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
 
const url = 'https://reqres.in/api/users';
 
 
global.document = new JSDOM(this.html).window.document;
 
async function getCards() {
    let response = await fetch(url);
    let cards = await response.json();
    let cardsList;
 
    document.addEventListener("DOMContentLoaded", function(event) { 
        cardsList = document.querySelector('.cards-list');
 
        for (key in cards) {
            cardsList.innerHTML += `
                <div class="card w-75">
                    <img src="${content[key].avatar}" class="card-img-top" alt="...">
                    <div class="card-body">
                        <p class="email">${content[key].email}</p>
                        <p class="first-name">${content[key].first-name}</p>
                        <p class="last-name">${content[key].last-name}</p>
                    </div>
                </div>
            `
        }
    });
}
 
app.get('*', (req, res) => {
    res.sendFile(path.resolve(__dirname, 'client', 'index.html'))
});
 
server.listen(3000, (err) =>{
    if(err){
        throw Error(err);
    }
    console.log('Server is runnig');
});


HTML страница
<!DOCTYPE html>
<html lang="en">
<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://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <title>Business Cards</title>
</head>
<body>
    <nav class="navbar navbar-light bg-light">
        <div class="container-fluid">
          <span class="navbar-brand mb-0 h1">Business Cards</span>
        </div>
    </nav>
    
    <div class="cards-list">
        <!-- тут должны быть карточки-->
    </div>
</body>
</html>


Подскажите, пожалуйста, что нужно сделать, чтобы элементы добавили на страницу?
  • Вопрос задан
  • 362 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Fzero0
@Fzero0
Вечный студент
async function getCards() асинхронная функция где вызывается?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы