Как получить переменную, доступную для отображения на моей странице успеха, после добавления элементов в базу данных по маршруту / POST? - PullRequest
0 голосов
/ 23 января 2019

Я хотел бы отобразить переменную doc.id успешного / POST данных для маршрута на странице успеха, на которую пользователь будет перенаправлен впоследствии.Я пытаюсь понять, как перенести переменную teamId на страницу шаблона Handlebar success.hbs

Я пытался сделать ее переменной и настроить помощник Handlebar для ее отображения, но ничего не происходит.работает.

/ POST-маршрут, перенаправляющий на success.hbs:

app.post('/create', (req, res) => {
var players = [];
var playerObj = {};
for (let i = 1; i < 21; i++) {
    var playerObj = { playerName: req.body[`player${i}Name`], playerNumber: req.body[`player${i}Number`], playerPosition: req.body[`player${i}Position`] };
    if (req.body["player" + i + "Name"] === '') {
        console.log("Empty player name detected, disregarding");
    } else {
        players.push(playerObj);
    }
}

var newTeam = new Team({

    // WEB SETUP BELOW
    "team.teamRoster.teamCoach": req.body.coachName,
    "team.shortTeamName": req.body.teamShortName,
    "team.teamName": req.body.teamName,
    "team.teamRoster.players": players
});

newTeam.save().then((doc) => {
    var teamId = doc.id;
    console.log(teamId);
    res.render('success.hbs');
    console.log("Team Added");
}, (e) => {
    res.status(400).send(e);
});
});

/ views / success.hbs

<div class="container-fluid" id="body">
    <div class="container" id="page-header">
        <h1><span id="headline">Team Added Succesfully</span></h1>
        <hr>
            <h3><span id="subheadline">Input the following address as a JSON Data Source within vMix.</span></h3>
            <span id="content">
                <div class="row">
                    <div class="container col-md-12">
                        {{{teamId}}}
                    </div>
                </div>
            </span>
        </div>
    <hr>
</div>

Я бы хотел получить помощник Handlebarзначение doc.id запроса / POST и сохранить его как teamId для отображения на странице успеха.Сейчас ничего не найдено.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 января 2019

Node.js может передавать переменные в представление руля следующим образом:

newTeam.save().then((doc) => {
    var teamId = doc.id;
    console.log(teamId);
    res.render('success.hbs', {
        teamId
    });
    console.log("Team Added");
}, (e) => {
    res.status(400).send(e);
});
...