2012-09-01 121 views
2

我對節點編程有點新,並試圖遵循一些教程。他們幾乎都是爲2.5.x編寫的。我已閱讀Express的migration page,但對於新手來說沒有明確的工作示例。我的問題是解決了以下幾個方面:將Express 2.0升級到3.0項目

  • req.flash()
  • 佈局和諧音
  • dynamicHelpers

爲對 '新辦法' '老辦法' 的例子並不僅僅是片段或其他模塊,以使舊版本代碼仍然有效,因爲我希望使用Express的新樣式。提前致謝。

回答

5

當你找到了例子舊路已經,這裏的 '新' 的方式:

'新' req.flash:

// insert in app.js as middleware, after express.static 
app.use(function(req, res, next) { 
    var msgs = req.session.messages || []; 
    res.locals({ 
    messages: msgs, 
    hasMessages: !! msgs.length 
    }); 
    req.session.messages = []; 
    next(); 
}); 

// save a message 
res.message('error', 'message'); 

// output 
<% if (hasMessages) { %> 
    <ul id="messages"> 
    <% messages.forEach(function(msg){ %> 
     <li class="<%= msg.type %>"><%= msg.msg %></li> 
    <% }) %> 
    </ul> 
<% } %> 

'新的諧音':

// install 
npm install express-partials 

// app.js 
var partials = require('express-partials'); 
app.use(partials()); 

// usage 
<%- body %> 

'新' dynamicHelpers:

// middleware 
app.use(function(req, res, next) { 
    res.locals.user = req.user; 
    next(); 
}); 

// usage 
<%= user %> 
+0

謝謝,這太棒了。爲了補充部分,我會看看http://www.devthought.com/code/use-jade-blocks-not-layouts/。 – basheps