有没有办法动态使用 res.render 和 url 参数?

Is there a way to dynamically use res.render with a url parameter?

我正在尝试以 ?parameter=12345 的形式动态加载具有不同 url 参数的页面,但我得到了响应 Failed to lookup view "account/signup?parameter=12345" in views directory,这可能意味着它确实看起来像对于该视图模板的精确匹配,包括参数方面。有没有一种方法可以在以下注册代码中使用该参数呈现页面:

exports.getSignup = function(req, res) {
  if (req.user) return res.redirect('/');
  try{
    headerString = req.headers.referer;
    headerString =  headerString.match(/\?(.*)/)[0] 
  }catch(e){
    console.log(e)
  }

  res.render('account/signup' + headerString, {
    title: 'Create Account',
    savedTripId: headerString
  });
};

你可以只渲染而无需在 url

中提及 headerString
exports.getSignup = function(req, res) {
  if (req.user) return res.redirect('/');
  try{
    headerString = req.headers.referer;
    headerString =  headerString.match(/\?(.*)/)[0] 
  }catch(e){
    console.log(e)
  }

  res.render('account/signup', {
    title: 'Create Account',
    savedTripId: headerString
  });
};

并且由于您似乎正在使用 JADE,因此您可以在客户端执行类似的操作

form(action="/formsubmit/#{headerString}")
    // form elements
    .
    .
    .

这将其呈现为

form(action="/formsubmit/1234")
    // form elements
    .
    .
    .

然后当表单被提交时你可以在服务器端得到 header 返回如下

app.post('/formsubmit/:headerString', function(req, res){

    var tripId = req.params.headerString;
    var formData = req.body; // if you are using body parser middleware
    // now you know which tripId has to be saved and have the form data. Perform actions accordingly

})