使用jade,express和node.js渲染模板时出现问题

时间:2014-10-18 06:24:00

标签: node.js express rendering pug

我是node.js,jade和&的新手。快递,请耐心等待。

我有以下文件。

layout.jade

index.jade

extends layout
block content
    label initial layout
    form(action="/getReports", method="GET", enctype="multipart/form-data")
        input(type='submit', value='Generate Report')

child.jade

extends index
block append content
    label added child

server.js

app.get('/getReports', function(res, req)
{
    res.render("child.jade");
});

过程:

  1. 用户启动并加载网站。他们看到了初始索引页面
  2. 用户点击触发调用Rest的操作的表单 Api getReports
  3. 该调用将呈现应该将“添加的子”附加到index.jade的内容部分的子模板。
  4. 然而,我没有看到这一点。我想我正在尝试理解附加到原始index.jade页面的部分模板的最佳方法。

    我遇到的问题是这个代码是客户端是index.jade页面。该按钮触发对服务器的动作调用。服务器处理数据,然后目标是获取数据并处理它将在index.jade页面上显示的模板。

    通常,如果没有jade模板文件,我只会使用javascript和天真的方式,只是让客户端java代码触发ajax调用,并在响应中使用DOM来附加带有处理数据的html但我想利用玉石。

    任何建议赞赏, 谢谢, d

1 个答案:

答案 0 :(得分:1)

以下是一些可能对您有所帮助的提示,

  1. res.render("child.jade");中,不要包含jade文件的扩展名.jade。只需res.render("child");即可。

  2. 在您的“child.jade”中,block append content错误,因为没有该名称的阻止。如果要在索引页面中呈现某些部分,则应在“index.jade”中指定块。就好像,

    extends layout
    block content
       label initial layout
          form(action="/getReports", method="GET", enctype="multipart/form-data")
          input(type='submit', value='Generate Report')
       block child
    

    和“child.jade”来,

    extends index
       block child
          label added child