如何在 Express 4.0 中发送 Flash 消息?

2024-05-05

因此,我的 Web 应用程序需要身份验证,并且我有一个注册页面,如果用户尝试使用数据库中已有的电子邮件进行注册,我想向他们显示一条错误消息。我正在尝试在 html 端使用此代码来执行此操作:

 <% if (message.length > 0) { %>
   <div class="alert alert-danger"><%= message %></div>
 <% } %>

在我的路线中这样做:

router.get('/signup', function(req, res) {
  res.render('/signup', { message: req.flash('signupMessage') });
});

我尝试使用以下内容设置配置:

app.configure(function() {
 app.use(express.session({ secret : 'keyboard cat' })); 
});

但这给了我一个类型错误:

 12:11:38 web.1  | app.configure(function() {
 12:11:38 web.1  |     ^
 12:11:38 web.1  | TypeError: Object function (req, res, next) {

我真的很困惑,因为我知道我需要会话才能使闪存工作,但会话似乎不适合我。我还尝试通过使用 req.session.messages 只使用会话而不使用 flash,但由于我没有工作会话,这显然不起作用。

有什么见解吗? 我正在使用 Express 4.0.0 谢谢


这个要点应该回答你的问题:

https://gist.github.com/raddeus/11061808 https://gist.github.com/raddeus/11061808

在您的应用程序设置文件中:

app.use(flash());

在设置会话和 cookie 解析器之后立即将其放置。这确实是您使用闪光灯所需的全部内容。

您正在使用:

req.flash('signupMessage', anyValue);

在重定向到 /signup 之前对吗?

这是我目前用于个人网站的一个有趣的小花絮(在我的主应用程序文件中):

app.use(function(req, res, next){
    res.locals.success_messages = req.flash('success_messages');
    res.locals.error_messages = req.flash('error_messages');
    next();
});

现在,每个视图都可以访问您闪现的任何错误或成功消息。对我来说效果很好。

最后一件事(这有点挑剔,但你可能会获得一些知识)。如果你改变:

<% if (message.length > 0) { %>

to:

<% if (message) { %>

它将以相同的方式工作,但如果消息未定义,则不会失败。在 JavaScript 中,未定义的字符串和空字符串都被视为“假”值。

编辑:我的 cookie/会话/flash 设置如下:

app.use(cookieParser('secretString'));
app.use(session({cookie: { maxAge: 60000 }}));
app.use(flash());

也许查看您的应用程序设置代码会有所帮助。另请注意,在 Express 4 中不再需要使用 app.configure。

最终编辑:https://gist.github.com/raddeus/11061808 https://gist.github.com/raddeus/11061808

这是一个有效的例子。运行该应用程序后转到 localhost:3000,您应该看到['it worked']在你的屏幕上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Express 4.0 中发送 Flash 消息? 的相关文章

随机推荐

  • 使用 PHP / Javascript 检测应用内浏览器 (WebView)

    我开发了一个适用于 iOS 和 Android 的应用程序 它使用应用程序内浏览器 Webview 从我的网络服务器访问 HTML 文件 我不希望用户可以在不使用该应用程序的情况下访问此文件 是否有可能检测用户是否使用应用程序或直接通过此智
  • 数字签名的值错误

    我正在尝试为文本块创建数字签名 虽然我似乎能够创建签名 但它与我们的测试用例所需的数字测试签名不同 我正在使用的代码如下 X509Store store new X509Store StoreName My StoreLocation Cu
  • 将 html 注入 thymeleaf 模板

    我的数据库中有百里香模板 首先 我检索模板并处理它 String processedTemplate templateEngine process databaseTemplate context So now processedTempl
  • 在 Safari 中转换变换和大小 (9.1)

    我试图在元素上实现平滑过渡transform translate 和一些其他属性 是的 我读过有关匹配供应商前缀的内容 它在 Chrome 和 FF 中工作正常 但在 Safari 中它不能平滑地动画转换 在最后跳转 在应用翻译之前 它似乎
  • VBScript 中的对象/类字典

    vbscript 中是否可以有对象 类的字典 例如 Class employeeclass Public first last salary End Class Dim employeedict Set employeedict Creat
  • 使 Selenium 记录 ID,而不是路径

    当我使用FF插件时它记录了我与之交互的元素的路径 如果 DOM 根据用户交互而发生重大更改 元素ID更方便 保证不受影响 我可以记录所有内容并手动更改 ID 的路径 但我想知道是否有更聪明的方法来做到这一点 我认为没有办法做到这一点 根据我
  • 签名 URL 在过期日期后仍然有效

    我创建了一个签名 URL 有效期为 2 天 尽管过期 但它仍然有效 我希望它给出一些错误 3XX 4XX 测试脚本 https gist githubusercontent com forvaidya 984003008b0603ca679
  • 如何使用活动模型为 date_select 下拉菜单定义虚拟属性

    我在应用程序中使用活动模型进行付款流程 但我无法添加信用卡到期日期字段 因为它会引发如下错误未定义方法 card expiration date 3i 在我的模型中 class CartServer include ActiveModel
  • 哪些浏览器容易受到多个 x-frame-options 的影响

    我正在做一个网络应用程序测试 发现多个 x frame options 标头条目存在一些漏洞 哪些浏览器容易受到多个 x frame options 的攻击 Multiple x frame options 标头条目可能受到哪些攻击 点击劫
  • Spark:有没有办法打印出spark-shell和spark的类路径?

    我可以在 Spark shell 中成功运行 Spark 作业 但是当它打包并通过 Spark submit 运行时 我收到 NoSuchMethodError 这向我表明类路径存在某种不匹配 有没有办法可以比较两个类路径 某种日志记录语句
  • Netbeans 版本控制文件颜色代码?

    我试图找到一个图例来帮助解释 NetBeans 用于描述文件状态的不同颜色 我的一些文件颜色是 Grey Blue Green 还有其他我还没有发现的 如果有帮助 我将使用带有 CVS 的 Netbeans 6 7 这些颜色是什么 绿色意味
  • 如何调试VS2010安装工程?

    如何调试VS2010安装工程 我尝试附加到 msiexec exe 但没 有帮助 我假设您想在安装程序中调试自定义操作 如果是这样 请在运行安装程序时打开解决方案 并将此行代码放在其中一个事件中 System Diagnostics Deb
  • 无法验证主机真实性

    我第一次做git pull 在git中提示无法确定主机的真实性 与我生成的私钥相比 RSA密钥指纹不正确 我只是想知道如何更新它以便它读取正确的文件以及为什么它首先读取错误的指纹 我遇到了类似的问题 这意味着远程主机未知 不受信任 修复方法
  • 如何将div附加到其他div中

    我想在 mytext div 中附加 div 但它正在更新 div 外部的文本 jj 指 body 元素 function var mydiv div min div
  • Apache mod_rewrite 内部到不同的端口

    是否可以使用 mod rewrite 内部重定向 因此地址栏中的 url 不会更改 到同一主机上的不同端口 例如 http host com 8080 gt http host com 9999 myapplication param va
  • 构建可扩展 Web 应用程序的书籍? (数据库性能/调优、网络、一般性能等)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 从计算机科学专业毕业并作为一名从事 Web 应用程序的软件工程师进入 现实世界 后 我对如何正确扩展 W
  • Sonarqube如何正确配置gradle子项目?

    我的 gradle 项目结构如下所示 geode core geode lucene extensions geode modules extensions geode modules session For extensions因此 子项
  • 从有序结果集中查找“运行”行

    我试图找出一种方法来识别满足某些条件的 运行 结果 按顺序连续行 目前 我正在订购结果集 并通过眼睛扫描特定模式 这是一个例子 SELECT the date name FROM orders WHERE the date BETWEEN
  • 了解 Mac 上的 Oracle Java

    我在 OS X 上使用 Java 很多很多年了 最近当 Apple 停止默认包含 Java 时 我放弃了操作系统并为我安装了它 当然是 Apple 的版本 现在我使用的是 OS X 10 8 并且需要安装 Java 7 因此我刚刚获得了 D
  • 如何在 Express 4.0 中发送 Flash 消息?

    因此 我的 Web 应用程序需要身份验证 并且我有一个注册页面 如果用户尝试使用数据库中已有的电子邮件进行注册 我想向他们显示一条错误消息 我正在尝试在 html 端使用此代码来执行此操作 div class alert alert dan