node.js - Express 2.0升级至3.0项目

标签 node.js express

我对 Node 编程有点陌生,并尝试遵循一些教程。它们几乎都是为 2.5.x 编写的。我读过migration page对于 Express,但对于新手来说没有明确的工作示例。我的问题涉及以下领域:

  • req.flash()
  • 布局和部分
  • 动态助手

“旧方式”与“新方式”的示例,而不仅仅是片段或附加模块,以使旧版本代码仍然可以工作,因为我想使用 Express 的新风格。提前致谢。

最佳答案

正如您已经找到的旧方法示例一样,以下是"new"方法:

"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>
<% } %>

“新部分”:

// install
npm install express-partials

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

// usage
<%- body %>

"new"dynamicHelpers:

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

// usage
<%= user %>

关于node.js - Express 2.0升级至3.0项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12231024/

相关文章:

java - 如何在 Node.js 应用程序/项目中使用 Wurfl 现场 java

node.js - Express.js 的自定义计算 Etag

node.js - 使用 AJAX 或 Socket.io 自动完成?

javascript - WebSocket 连接到 'wss://localhost:44300/Home/websocketcon' 失败 : Error during WebSocket handshake: Unexpected response code: 404

javascript - 如何使用express和ejs包含html文件

node.js - 错误 : Failed to lookup view

node.js - 按每个用户的总请求数限制 API 端点

javascript - 在 node.js 代码中实现回调的问题

javascript - 通过 POST 将文件传递给 NodeJS,然后传递给另一个 API,而不保存在磁盘上

javascript - 如何将查询url中的值插入 Node js中的mysql表?