Рендеринг представлений с node.js express ejs

#javascript #node.js #ejs

#javascript #node.js #ejs

Вопрос:

У меня возникли трудности с рендерингом страниц с ejs в моем node.js приложение.

Вот как я настроил рендеринг:

     // index page
  app.get('/', function(req, res) {
      res.render('pages/index');
  });

  // team page
  app.get('/teams', (req, res) => {
    const teams = {
    nhl: data
  };
      res.render('pages/teams', teams);
  });

  app.get('/pages/team/:name', (req, res) => {

    const team = {
      nhl: data
    };

    res.render('pages/team', {
      name: [req.params.name],
      division: team.abbreviation,
      team
    });
  });
  

Мои страницы index и teams в порядке, именно такими, какими они должны быть на данный момент. Проблема в том, что когда я пытаюсь рендерить собственную страницу для каждой команды с некоторой информацией, я не могу получить нужную информацию из api. В этом случае я могу правильно получить название команды с помощью этого: name: [req.params.name] но, например, сокращение дает мне только undefined .
Это мой файл team.ejs:

 <!DOCTYPE html>
<html lang="en">

<head>
  <% include ../partials/head %>
</head>

<body class="container">

  <header>
    <% include ../partials/header %>
  </header>

  <main>
    <div class="row">
      <div class="col-sm-8">
        <div class="jumbotron">
          <h1><%= name %></h1>
          <p>Done using node.js   ejs template engine</p>
        </div>
      </div>



        <div>
       <h2></h2>

       <p><%= division %></p>
       <hr>
   </div>


    </div>
  </main>

  <footer>
    <% include ../partials/footer %>
  </footer>

</body>

</html>
  

Это api, который я использую:https://statsapi.web.nhl.com/api/v1/teams

Комментарии:

1. возможно, вам нужно это division: team.nh1.abbreviation

2. Я пробовал это, также выдает ‘undefined’.

3. Как вы получаете данные для каждой команды, используя предоставляемый вами API?

4. Вы никогда не определяли data в своем коде? Откуда data берется?

5. Я определил это в начале моего server.js: const nhl = 'https://statsapi.web.nhl.com/api/v1/teams/'; Если я правильно понял, о чем вы спросили.