如何在节点中使用express获取参数

时间:2015-02-17 16:08:44

标签: node.js express

我确信这很容易,但我不能为我的生活弄清楚为什么这不起作用。

因此,尝试编写一个用户可以搜索的应用程序,获取一个链接,如果计时它调用第二个路径,则传递一个变量。听起来很简单,所以我想。

这个想法是生成的每个链接都有一个像“localhost:3000 / getcan /:[id]”这样的链接 因此,对于我们的示例,如果我尝试转到网页,我试图将22变为变量

"localhost:3000/getcan/:22"

要设置路线,我在app.js

中设置了以下内容
app.use('/getcan/:*', getcan);

这似乎有用,如果我把任何调用/ getcan /:我去了正确的路线。

它自己的路线如下

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

/* GET getcan page. */
router.get('/', function(req, res, next) {
    var canid = req.params.canid;
    console.log("Got the following id " + canid)
    res.render('getcan', { title: 'ResourceEdge', reqcan: canid });
});

module.exports = router;

我认为问题出在router.get('/'但是如果我做了任何更改(尝试使用get('/ getcan /:canid),那么所有这些都会因404而爆炸。

任何指针?

1 个答案:

答案 0 :(得分:1)

将app.use更改为:

app.use('/getcan', getcan);

你的路由器:

/* GET getcan page. */
router.get('/:canid', function(req, res, next) {
    var canid = req.params.canid;
    console.log("Got the following id " + canid)
    res.render('getcan', { title: 'ResourceEdge', reqcan: canid });
});

然后使用:http://localhost:3000/getcan/22

调用您的路线