Создать приложение Node.js, которое получает данные из API и создает таблицу в HTML-файл с этими данными - PullRequest
0 голосов
/ 09 февраля 2019

Мы работаем с этим API: https://jsonplaceholder.typicode.com/users И мне нужно создать приложение node.js, которое получит список пользователей из API и создаст содержимое файла html из 0 с таблицей внутри этого пользователя.,

Я записал эту задачу с помощью html / css / js с fetch, и она работает, и теперь я не знаю, как это сделать с помощью node.js.Пока у меня есть только этот код:

const axios = require('axios');
const url = 'https://jsonplaceholder.typicode.com/posts';
axios.get(url)
.then(function (response) {
    //console.log(response.data);
    let arr = [];
    arr = response.data;
    fillTheTable(arr);
  })
.catch((error) => console.log(error));

1 Ответ

0 голосов
/ 09 февраля 2019

Я бы порекомендовал вам использовать минимальное MVC Express App:

При app.js вы запускаете сервер:

var express = require('express');
var app = express();
var index = require('../controllers/index');

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

app.get('/', function (req, res) { // index url of your web app. Will call to index controller
  index
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

При controlles/index.js вы указываете логику своей основнойurl (получить данные вашего API и преобразовать их в представление для преобразования в HTML):

const axios = require('axios');

const asyncUtil = fn =>
    function asyncUtilWrap (req, res, next, ...args) {
        const fnReturn = fn(req, res, next, ...args)
        return Promise.resolve(fnReturn).catch(next)
    }

module.exports = {
  index: asyncUtil(async (req, res, next) => {
      let users = await axios(url)
      res.render('index', {users})
  })
}

Вы зададите HTML в представлении pug на views/index.pug, которое преобразует его в HTML:

table
  thead
    tr
      th Id
      th Name
      th Username

  tbody
    each user in users // iterate through users json
      tr
        td #{user.id}
        td #{user.name}
        td #{user.username}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...