我已经使用带有默认 View 引擎 jade 的 express 设置了一个基本的 node.js 网络应用程序。
当用户首次加载页面时,会发生以下情况
app.get('/', function(req, res){
res.render('index', {
title: 'Test',
mode: "user"
});
});
我无法解决的是如何更改我最初从 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"
// });
});
如果有人有过此工作的经验,我们将不胜感激。
最佳答案
我不太确定你在做什么,但如果它用 AJAX 调用的结果更新页面(不刷新或以其他方式重新加载页面),那么你将不得不使用客户端 JavaScript . jQuery 的 load()或 post()应该能够处理。
或者,如果您不使用 AJAX 而是执行正常的表单提交,您有几个选择。第一,您可以保留重定向并使用 Express/Connect 的 Sessions系统确定用于 get 请求的内容,或者两个您可以将重定向替换为 index.jade 页面的另一个 res.render 并包含您要更改的变量。
应该理解的是,在这两种情况发生后,node.js 将网页的控制权交给浏览器,除非您专门设置通信架构。目前在 node.js 中没有控件来强制更新或页面更改到客户端。除非通过套接字连接或由客户端本身以其他方式轮询(例如在涉及 jQuery 的第一个示例中)。
关于node.js - 如何从 ajax 帖子更新 A Jade 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5265514/