节点、Express、Ajax和Jade示例

节点、Express、Ajax和Jade示例,ajax,node.js,express,pug,Ajax,Node.js,Express,Pug,我正在寻找一个简单的示例,其中Node/Express/Jade页面使用Ajax调用以及客户端和服务器端代码进行更新 在我的头脑中,我有点难以把所有这些都放在一起。有很多方法可以做到这一点,但现在还不清楚你想采取哪种方法 我认为最简单的场景是添加一些客户端逻辑,从服务器获取html片段并更新客户端。使用jQuery可以很容易地实现这一点(将其放在document ready块中以连接事件): 这样,所有html都在服务器上生成,您只需根据需要获取并插入页面即可 您还可以从服务器获取json并在客

我正在寻找一个简单的示例,其中Node/Express/Jade页面使用Ajax调用以及客户端和服务器端代码进行更新


在我的头脑中,我有点难以把所有这些都放在一起。

有很多方法可以做到这一点,但现在还不清楚你想采取哪种方法

我认为最简单的场景是添加一些客户端逻辑,从服务器获取html片段并更新客户端。使用jQuery可以很容易地实现这一点(将其放在document ready块中以连接事件):

这样,所有html都在服务器上生成,您只需根据需要获取并插入页面即可

您还可以从服务器获取json并在客户端呈现html,但这是另一种方法。我强烈建议大家看看——这是一个todo列表应用程序,有许多不同的实现(每个都使用不同的框架),因此是各种方法和帮助器库的一个很好的学习资源


我还推荐这本书。它将帮助您了解路由以及如何开始使用Node。

谢谢Morten。我很了解节点中的路由。我很欣赏你上面给出的例子,但是服务器端呢?我是否将jade模板传递给ajax请求?那么部分视图呢?对所有服务器端请求都执行相同的操作,只是有些URL将映射到呈现部分视图的处理程序。这可能只是一个普通的Jade模板,只是它只包含您想要呈现的标记(而不是整页html)。@MortenMertner要呈现部分视图,或者调用服务器端函数,客户端的AJAX路由示例是什么?@AndrewPeacock我想这取决于您,因为这取决于服务器上的路由。例如,您可以将服务器路由映射到url
/products/details
,该url呈现get请求的完整页面和post请求的部分视图。在客户端上,您将使用
$.post('/products/details',{id:42},函数(result){…})
执行ajax/post请求(使用jQuery),然后从服务器返回部分视图。如果您喜欢的话,您也可以为部分视图使用单独的URL。@AndrewPeacock我想它只是点击了一下。我现在觉得自己有点傻。节点服务器使用预呈现的部分视图响应,而不是带有文档类型、标题、标题等的整个页面。?这似乎更安全。服务器端jade不是返回客户端javascript必须呈现的对象,而是为您执行该操作,并返回准备就绪的html?这些都对吗?
$('#button').click(function() {
     $.get('/some/url', {foo: 42}, function(result) {
         $('#target').html(result);
     }
}