req_params_id未定义?

时间:2014-02-08 05:32:54

标签: javascript node.js express mongoose pug

我的Jade View中有几个锚标签,它们具有所有的唯一href值,我使用mongodbforeach检索到的数据生成锚标记,每个锚标记我都是在processinreq/之后插入ID为#{item._id}

这是我在翡翠中的代码:

!!! 5
html
    head
    title= title
    meta(name='viewport', content='width=device-width, initial-scale=1.0')
    link(href='/css/bootstrap.min.css', rel='stylesheet', media='screen')
    script.(src='js/jquery.js')
    script.(src='js/bootstrap.min.js')
    style.(type='text/css')
        tr {border:1px solid grey;}
        td {border:1px solid grey;}
body
    .container
        h1 View Requests Page
        p #{email}
        table
            tbody
                - if(raw.length)
                    each item in raw
                        tr
                            td
                                a(href='/processinreq/#{item._id}', id="idanch") #{item._id}
                            td 
                                a(href='/processinreq/#{item._id}', id="rqstanch") #{item.request}
                            td
                                a(href='/processinreq/#{item._id}', id="descanch") #{item.description}

在我的routes.js文件中,我正试图像这样收到href

app.post('/processinreq/:req_id', function(req, res) {
    var req_id = req.params.id;
    console.log(req_id);

    Requests.find({ 'id':req.user.id }, function (err, data) {
        if(err) {}
        res.render('inreq', { user:req.user, raw:data, requestedid:req_id });
    }); 
 });

console.log(req_id)显示为undefined。如何将req_id变量传递给我inreq以上res.render呈现的req_id玉视图。我传递了{{1}}变量,但是在Jade中如果我使用它,则显示为requestedid的值,即在Jade中的#{requestedid}

1 个答案:

答案 0 :(得分:0)

因为您在路由中将标记指定为:req_id,所以express会在params对象上添加一个名为req_id的字段。

我认为将变量赋值更改为以下内容可以解决问题。

var req_id= req.params.req_id;

查看关于路由和参数的expressjs文档:http://expressjs.com/api.html#req.param

Express'文档非常简单。

http://tagtree.tv查看我的一系列完整堆栈JavaScript截屏视频。