Dynamic Route ExpressJS基于链接值

时间:2015-08-30 21:45:46

标签: node.js express routes

我尝试设置一些动态路由,从所选链接中提取值并将其传递到下一页名称之前的路由中。例如:

我在'/'上有一个链接,然后点击链接<a href="#" id="solid-choice">Solid</a>

我想将此链接值传递到下一页渲染的路径中。与'/solid/next-page'

一样

我有一些路由设置,但我认为它没有按照我想要的方式正确地拉动路线。 /:pattern/next-page是我特别谈论的路线

以下是我的观点:

<!DOCTYPE html>
<head>
    {{> head}}
</head>
<body class="pattern-wrapper">
{{> navigation}}
    <div class="container">
        <div class="row pattern-choice">
            <div class="col-md-12">
                <h2><i>Choose a pattern</i></h2>
                <ul>
                    <li class="button-border">
                        <h3 class="button-choice" ><a href=":pattern/next-page" class="button-link" id="solid-choice">SOLID</a></h3>
                    </li>
                    <li class="button-border">
                        <h3 class="button-choice" id="stripe-choice"><a href=":pattern/next-page" class="button-link" id="stripe-choice">STRIPE</a></h3>
                    </li>
                    <li class="button-border">
                        <h3 class="button-choice" id="plaid-choice"><a href=":pattern/next-page" class="button-link" id="plaid-choice">PLAID</a></h3>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</body>
</html>

这是我目前的路线:

var express = require('express');
var router  = express.Router();

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

router.get(':pattern/next-page', function(req, res){
    req.param('pattern');
    res.render('pages/color.hbs');
});

router.get('/suit-result', function(req, res){
    res.render('pages/suit-result.hbs');
});

module.exports = router;

1 个答案:

答案 0 :(得分:0)

你很亲密。您需要使模板变量可用于模板。您可以将res.render('pages/color.hbs')更改为res.render('pages/color.hbs', {pattern: req.params.pattern})

然后您更改模板以使用新的可用变量:<a href="{{pattern}}/next-step"></a>