我正在处理 Sams“24 小时内的 Node.js”。第8章给我带来了困难(超过一个小时)!示例 07 允许程序员创建一个页面,用户可以创建一个存储在 MongoDb 中的任务列表。该代码使用 Express 和 Jade。按照说明一切正常......除了我注意到“标题”没有呈现,而是我得到了一个通用标题,即路线的目录路径。我的问题是为什么?我认为我正确使用 res.render,Jade 索引/布局文件与作者的一致(检查https://github.com/shapeshed/nodejsbook.io)。
更新:因为它看起来像 layout.jade 被忽略了,我删除了它。没有出现错误,问题仍然存在。为什么/如何忽略 layout.jade?
**结论**:“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
任务/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!