【问题标题】:node.js and expressjs render a template with a URL paramnode.js 和 expressjs 使用 URL 参数渲染模板
【发布时间】:2012-12-16 11:23:48
【问题描述】:

当前有一个用户带着邀请 ID 来到我的注册页面

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

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

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

});

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

http://www.mysite.com/user/register(缺少邀请 ID)

如何通过 res 渲染传递 URL 参数?

如果我这样做:

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

});

它实际上是在寻找那个 50e203.... 文件并给我 404 not found

谢谢!

【问题讨论】:

标签: node.js express


【解决方案1】:

您是否将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');
});

【讨论】:

  • 其实我是个白痴……我只需要在翡翠模板中将ID连接到表单动作中……我把res.render和url混在一起了!
猜你喜欢
  • 1970-01-01
  • 2020-06-27
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多