有没有办法动态使用 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
})
我正在尝试以 ?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
})