2012-09-01 48 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