node.js - 你如何在 express 中测试 req.flash()?

标签 node.js tdd express

我目前有一个要测试的 express/node 应用程序,但它给出的响应格式为 req.flash('warn', 'message goes here');

不幸的是,express.js 上的文档没有非常彻底地描述此消息如何传送到客户端。

我知道expresso有一个测试响应对象的 assert.response() 函数。我想知道闪存消息的去向,以及如何以类似的方式测试它(或者如果不可能,我应该通过响应对象发送所有内容)。

最佳答案

我认为这不应该像那样工作。您不能只使用 req.flash() 作为响应请求的唯一方式。

它更像是一种在您的普通模板上向用户发送消息的简单方法 - 例如在插入/创建文章后,您可以说:

req.flash('error', 'could not insert because .... ');

req.flash('info', 'article added successfully!');

然后在我的最后一个项目中,我向我的应用程序添加了两个动态助手:

app.dynamicHelpers({
    info: function (req, res) {
        return req.flash('info');
    },
    error: function (req, res) {
        return req.flash('error');
    }
});

这样我就可以在我看来这样说:

<% if (info !== undefined && info != "") { %>
<div class="infoBubble"> 
    <%= info %>
</div>
<% } %>

<% if (error !== undefined && error != "") { %>
<div class="errorBubble"> 
    <strong>Fehler</strong>: <%= error %>
</div>
<% } %>

结果是这样的:

screenshot of flash bubble

关于node.js - 你如何在 express 中测试 req.flash()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7751379/

相关文章:

node.js - 本地隧道替代方案不起作用

node.js - MongoDB 和 Mongoose 中边界框的数据类型?

asp.net-mvc - 多层 MVC4 TDD

java - assertEquals(obj,obj) 返回失败的测试

javascript - busboy-connect 在保存文件结束前触发(node.js,express)

javascript - Angular2 重复标识符 'PropertyKey'

node.js - nodejs,reduce中的异步,await不等待promise解析

unit-testing - 在 TDD 中,测试是否应该由实现被测功能的人编写?

mongodb - node.js: 带有 Mongoose 的 expressjs

node.js - 自定义响应 Express Validator 作为 JSON