gpt4 book ai didi

node.js - 如何禁用 jade 或 swig 中的缓存

转载 作者:太空宇宙 更新时间:2023-11-04 01:11:04 25 4
gpt4 key购买 nike

我最近一直在玩express 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');
}
}

这是我的 Jade

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}')

最佳答案

除非您在生产模式下运行 Express,否则不存在缓存问题。

当您按 F5 时,看起来就像这样,在表单错误之后,您的请求是通过邮寄重新提交相同的表单(带有错误)。

选项 1:

  • AJAX <3

选项 2:

  • 使用 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');
    }
    }

关于node.js - 如何禁用 jade 或 swig 中的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17530443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com