node.js和expressjs使用URL参数呈现模板

时间:2013-01-02 02:19:23

标签: node.js express

目前,用户使用邀请ID进入我的注册页面

示例:http://www.mysite.com/user/register/50e203eb4d37bdfd22000042

页面加载和表单加载等......一切都很棒。然后,我做了一些后端验证,如果验证失败,我会使用消息和表单数据调用res.render:

res.render('user/register', {
    messages: messages 
    , form: form 

});

这一切都按预期工作,但是当渲染发生时,它会将用户返回到:

http://www.mysite.com/user/register(缺少invite_id)

如何使用res渲染传递URL参数?

如果我这样做:

res.render('user/register/50e203eb4d37bdfd22000042', {
    messages: messages 
    , form: form 

});

它实际上正在寻找那个50e203 ....文件并给我404未找到

谢谢!

1 个答案:

答案 0 :(得分:3)

您是否可能会将res.render()app.get()混淆?看起来你正试图在第二个例子中指定路线:res.render('user/register/50e203eb4d37bdfd22000042'... - 但res.render没有指定路线,你需要app [METHOD],其中app是一个快速实例。

为了处理对/ user / register / someinvite的GET请求,请使用:

app.get('/user/register/:invitation', function(req, res, next) {
// in here you can access the invitation id with req.params.invitation
  res.render('user/register');
});