如何从ajax帖子更新A Jade模板?

Luk*_*uke 7 node.js express pug

我已经使用express使用默认的视图引擎jade设置了一个基本的node.js web-app.

当用户首次加载页面时,会发生以下情况

app.get('/', function(req, res){
    res.render('index', {
        title: 'Test',
        mode: "user"
    });
});
Run Code Online (Sandbox Code Playgroud)

我无法解决的是如何更改我最初从ajax调用传递到jade模板的参数.

app.post('/', function(req, res){
    console.log(req.body.list);
    res.redirect('back');
    // I imagine the code needs to go here and look somewhat like the following
    // 
    // res.?update-view({
    //  mode: "admin"
    // });
});
Run Code Online (Sandbox Code Playgroud)

如果有人有这方面的工作经验,我们将不胜感激.

Zik*_*kes 4

我不太确定您想要什么,但如果它使用 AJAX 调用的结果更新页面(不会刷新或以其他方式重新加载页面),那么您将不得不使用客户端 JavaScript。jQuery 的load()post()应该能够处理这个问题。

或者,如果您不使用 AJAX,而是执行普通表单提交,则您有几个选择。一,您可以保留重定向并使用 Express/Connect 的会话系统来确定 get 请求所使用的内容,或者二,您可以将重定向替换为 index.jade 页面的另一个 res.render 并包含您想要的变量改变。

应该理解的是,在发生这两种情况之后,node.js 会将网页的控制权交给浏览器,除非您专门设置了通信架构。目前,node.js 中没有任何控件可以强制客户端进行更新或页面更改。除非通过套接字连接或除非客户端本身进行轮询(例如涉及 jQuery 的第一个示例)。