介绍
Flash 消息是指在应用程序中显示一条消息,然后在下一次请求时将其删除。例如,在用户成功登录后,显示一个"欢迎回来!"的消息,并在下一次请求时将其隐藏。
在 Express.js 应用程序中,可以使用 Connect-flash 中间件来实现 Flash 消息。Connect-flash 建立在 Express-session 上,并提供了一组 API,让我们可以在请求中存储和获取 Flash 消息。
安装
要使用 Connect-flash,请先安装 Express-session。可以使用以下命令:
npm install express-session
然后安装 Connect-flash:
npm install connect-flash
使用
首先在应用程序中引入这两个模块:
const session = require('express-session'); const flash = require('connect-flash');
然后,使用 session 中间件将 session 引入应用程序:
app.use(session({ secret: 'mySecret', resave: false, saveUninitialized: false }));
启用 flash 中间件:
app.use(flash());
在路由中,可以使用 flash() 方法启用 Flash 消息:
-- -------------------- ---- ------- ------------------ ------------- ----- -- ------ -- -------------- - -- ------- ----- -- -------------------- --------- ---------------------- - ---- - -- ------- ----- -- ------------------ ------------- ----------------------- - ---展开代码
在视图中,可以使用以下方式获取并显示消息:
<% if (messages.error) { %> <div class="alert alert-danger"><%= messages.error %></div> <% } %> <% if (messages.success) { %> <div class="alert alert-success"><%= messages.success %></div> <% } %>
示例代码
完整的应用程序示例代码如下:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------- - --------------------------- ----- ----- - ------------------------- ----- --- - ---------- ----------------- ------- ----------- ------- ------ ------------------ ----- ---- ----------------- ----------------- ------------- ----- -------------------- --- ------------------ ------------- ----- -- ------ -- -------------- - -- ------- ----- -- -------------------- --------- ---------------------- - ---- - -- ------- ----- -- ------------------ ------------- ----------------------- - --- ---------------- ------------- ----- -- -- ----- ----- ----- -------- - ------------ ------------------ ---------- ----------- --- ---------------- ----------- ----------------------- ---- ---- ---展开代码
总结
使用 Connect-flash 可以轻松地在 Express.js 应用程序中实现 Flash 消息。通过使用 Flash 消息,可以提高用户体验,减少冗余的提示信息。在实际开发过程中,可以根据具体的需要,对消息格式和样式进行定制。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66509160d3423812e4323b81