【问题标题】:Nodejs/Express - 'title' not renderingNodejs/Express - “标题”不呈现
【发布时间】:2013-06-16 13:27:53
【问题描述】:

我正在研究 Sams “24 小时内的 Node.js”。第8章给我带来了困难(超过一个小时)!示例 07 允许程序员创建一个页面,用户可以创建一个存储在 MongoDb 中的任务列表。该代码使用 Express 和 Jade。按照说明一切正常......除了我注意到“标题”没有呈现,而是我得到了一个通用标题,即路线的目录路径。我的问题是为什么?我认为我正确使用 res.render,Jade 索引/布局文件与作者的一致(检查https://github.com/shapeshed/nodejsbook.io)。

更新:因为它看起来像 layout.jade 被忽略了,我删除了它。没有出现错误,问题仍然存在。为什么/如何忽略 layout.jade?​​p>

** 结论**:“Node.js in 24 Hrs”假设 Express 2。但是按照本书的安装说明安装 Express 3,因此存在困难(补救措施如下)。请注意,本书的第 8 章仅在对 Jade 进行了最简单的介绍(第 6 章)之后介绍了耦合 Node.js/Mongodb/Jade/Flash,而对 Flash 完全没有介绍。除非您已经是经验丰富的前端开发人员,否则这将需要一个多小时。

目录结构为:

\connect_to_mongo
 |
 |-  \node_modules
 |-  \public
 |-  \routes
 |-  \views
 |    |- \tasks
 |    |    |- index.jade
 |    |    |- new.jade
 |    |- index.jade
 |    |- layout.jade
 |- app.js
 |- package.json

app.js 包含:

app.get('/tasks/new', function(req,res) {
    Task.find({}, function(err,docs) {
        res.render('tasks/new.jade', {
            title:'New Tasks'
        });
    });
});

layout.jade 是:

!!!
html
  head
    title #{title}
    link(rel='stylesheet', href='http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css')
  body
    section.container!= body

tasks/index.jade 是:

h1 Your tasks
p
  a(href='/tasks/new', class='btn primary') Add a Task

- if(docs.length)
  table
    tr
      th Task
        each task in docs
          tr
            td #{task.task}
- else
  p You don't have any tasks!

【问题讨论】:

  • 请注意所有最新浏览器的相同行为:Firefox、Chrome 和 IE。 'layout.jade' 中的 'title' 赋值变体没有效果。

标签: javascript node.js express pug


【解决方案1】:

删除=

应该是

title #{title}

【讨论】:

    【解决方案2】:

    Express 3(您可能正在使用)中已弃用布局。

    相反,您需要使用template inheritance:

    // layout.jade
    ...
    section.container
      block body
    
    // tasks/index.jade
    extends ../layout
    
    block body
      h1 Your tasks
      ...
    

    或者,您可以安装 Express 2 而不是 Express 3,因为如果您的图书采用版本 2,您可能会遇到其他问题:

    npm install express@2.5.11
    

    【讨论】:

      猜你喜欢
      • 2012-07-16
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多