我正在通過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