我正在通过Sams“Node.js在24小时内”工作。第8章给我带来困难(超过一个小时)!示例07允许程序员创建一个页面,用户可以创建一个存储在MongoDb中的任务列表。代码使用Express和Jade。按照指示一切正常......除了我注意到'标题'不是渲染,而是我得到一个通用的标题,路线的目录路径。我的问题是为什么?我认为我正确使用res.render,Jade索引/布局文件与作者同意(选中https://github.com/shapeshed/nodejsbook.io)。Nodejs/Express - 'title'not rendering
更新:由于它看起来像layout.jade被忽略,我删除它。没有错误导致问题依然存在。为什么/如何忽略layout.jade?
**结论**:“24小时内的Node.js”假设为Express 2.继本书的安装说明后,将安装Express 3,因此存在困难(下面的补救措施)。请注意,本书的第8章介绍了耦合Node.js/Mongodb/Jade/Flash,仅仅介绍了Jade的最简单介绍(第6章),而没有介绍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
任务/ 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'中'标题'赋值的变化不起作用。 – MikeB