我最近一直在玩快递js,我很喜欢它。我的问题是,当我提交无效表单时,会出现验证错误消息,但是当我重新加载页面时,错误消息仍然显示我认为错误消息正在被缓存。有没有办法在jade / swig中禁用缓存,还有一种方法可以指定要缓存哪些页面而不是缓存(如表单)?
示例代码:
filename: index.js
// app.get('/form', index.getForm)
exports.getForm = function(req, res){
res.render('form');
}
// app.post('/form', index.postForm)
exports.postForm = function(req, res){
// express form validation goes here ...
if(errors){
res.locals.errors = errors;
res.locals.form = req.body;
exports.getForm(req, res);
}else{
res.redirect('/welcome');
}
}
这是我的玉
filename: form.jade
if error.email
.error=error.email.msg
input#email(type='email', name='email', value='#{form.email}')
else
input#email(type='email', name='email', value='#{form.email}')
答案 0 :(得分:1)
除非您在生产模式下运行快递,否则没有缓存问题。
看起来当您按F5
时,在表单错误后,您的请求会通过帖子重新提交相同的表单(带有错误)。
<3
使用2个不同的jade模板,一个用于exports.postForm with
errors
,另一个用于exports.getForm
。 类似:
exports.getForm = function(req, res) {
res.render('form');
}
exports.postForm = function(req, res) {
// express form validation goes here.
if(errors) {
res.locals.errors = errors;
res.locals.form = req.body;
res.render('form_fail'); <----
}
else {
res.redirect('/welcome');
}
}