2012-09-13 22 views
0

基於Mircosoft的WebMatrix 2中的示例項目,我已經開始使用everyauth和express來創建一個小型webapp。 我無法得到我的頭是如何將信息傳遞到視圖和觀點如何從部分視角融合在一起。用everyauth和express傳遞用戶細節到玉

該視圖是從稱爲layout.jade的父視圖和例如index.jade的部分視圖生成的。然而,這些觀點似乎並不相互引用。

路由似乎與此代碼進行管理:

app.configure(function() { 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(require('./middleware/locals')); 
    app.use(express.cookieParser()); 
    app.use(express.session({ secret: '[secret]' })); 
    app.use(everyauth.middleware()); 
    app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] })); 
    app.use(connect.static(__dirname + '/public')); 
    app.use(app.router); 
}); 

這些路由這樣定義:

app.get('/', function(req, res) {   
    res.render('index', { title: 'Home Page. ' }) 
}); 

這似乎完全合併的佈局和局部視圖,但我不能弄清楚如何。任何人都可以闡明這是如何工作的?

回答

1

如果你不是來自一個紅寶石背景,它可能是一種很難把握,希望這有助於。

默認情況下,express會渲染一個「佈局」(在你的案例layout.jade中)。然後在每個頁面上呈現佈局,除非在其他地方指定。雖然這可能對網站和博客有幫助,但網站和博客的頭部總是相同的,但我發現它在Web應用程序中很麻煩。您可以通過添加下面的代碼到你的應用程序設置中禁用,如果你喜歡:然後

app.set('view options', {layout: false});

快遞會使你的觀點(在這種情況下index.jade)。索引是大部分內容。

Express也可以渲染部分,這是視圖內部的局部視圖。這對頁腳等項目很有幫助,但可以影響性能。重要的是要注意,一個部分不同於一個視圖。

我發現沒有Jade/Tempting體驗的人使用EJS而不是Jade的學習曲線較小,因爲它的流動性非常像HTML。

下面是一些視頻,當我第一次開始使用express時,這些視頻確實幫助我掌握視圖/部分和中間件。 Nodetuts是一個很好的資源。 Express文檔也發展成爲一個非常寶貴的資源,快樂的編碼和祝你好運!
express documentation
nodetuts express

+0

謝謝,澄清事情有點。 – Hans

相關問題