#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/';
Если я правильно понял, о чем вы спросили.