Как вы тестируете req.flash () в экспрессе? - PullRequest
3 голосов
/ 13 октября 2011

В настоящее время у меня есть приложение для экспресс / узлов, которое я хочу протестировать, но ответы, которые оно дает, имеют вид req.flash('warn', 'message goes here');

К сожалению, документация по express.js не описывается, как это сообщение очень тщательно передается клиенту.

Я знаю, expresso имеет функцию assert.response (), которая проверяет объекты ответа.Мне было интересно, куда отправляется флэш-сообщение и как я могу проверить его аналогичным образом (или, если это невозможно, и я должен отправлять все через объект ответа).

1 Ответ

12 голосов
/ 13 октября 2011

Я не думаю, что это должно работать так. Вы не можете просто использовать req.flash() как единственный способ ответить на запрос.

это больше похоже на простой способ прошивки сообщений пользователю на ваших normal шаблонах - например, после вставки / создания статьи вы можете сказать:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...