将Express 2.0升级到3.0项目

时间:2012-09-01 20:10:38

标签: node.js express

我对节点编程有点新,并试图遵循一些教程。它们几乎都是为2.5.x编写的。我已经阅读了快递的migration page,但新手没有明确的工作示例。我的问题是解决以下几个方面:

  • req.flash()
  • 布局和部分
  • dynamicHelpers

对于'旧方式'与'新方式'示例而不仅仅是片段或其他模块,以使旧版本代码仍然有用,因为我想使用与Express一起工作的新方式。提前谢谢。

1 个答案:

答案 0 :(得分:5)

当你找到旧的例子时,这里有'新的'方式:

'new'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>
<% } %>

'new partials':

// 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 %>