如何获得连接闪光灯以返回多条消息或带有换行符的单条消息?

我正在使用nodejs构build一个应用程序。

我创build了一个表单,并且正在处理用户input的后端validation。 基本上,我有一个变种,“消息”,每当我遇到一个input错误,我将错误追加到消息。

var messages =""; errors.forEach(function(msgObject) { console.log(msgObject.message); messages += msgObject.message + "\r\n"; }) 

(我也使用了指示 – http://indicative.adonisjs.com/ – 错误validation,它返回一个数组错误)

我正在使用connect-flash将错误返回给用户

 req.flash("error", messages); 

我正在使用connect-flash https://www.npmjs.com/package/connect-flash

我的问题是,连接闪光忽略换行符。 即,我得到像这样的东西:

在这里输入图像说明

我希望每个错误消息在一个单独的行。 我似乎无法find一种方法来实现这一点。 有任何想法吗?

这是一个更简单的问题:为什么req.flash(“errors”,“hello \ n goodbye”)返回

 hello goodbye 

代替

 hello goodbye 

你原来的post中缺less的东西可能会帮助你解决自己的问题。

  1. 你使用什么模板语言来显示通知? 它是逃避换行吗?
  2. 你应该使用HTML吗? 所以<br />而不是\n
  3. 为什么不按顺序使用多个req.flash来创build通知数组?

3:见下文

 // Set a flash message by passing the key, followed by the value, to req.flash(). req.flash('info', 'Flash is back!') req.flash('info', 'Another message!') // Get an array of flash messages by passing the key to req.flash() res.render('index', { messages: req.flash('info') }); 

由于我们有一array消息,因此可以迭代messages数组以单独显示它们:

 {% for message in messages %}<li>{{ message }}</li>{% endfor %} 

你是对的,我忘了我的ejs文件,这回答了我的问题。

我基本上添加了HTML li而不是换行符(用来制作错误列表)

  errors.forEach(function(msgObject) { console.log(msgObject.message); messages += "<li>" + msgObject.message + "</li>"; }) if(messages != "") { messages = "<ul>" + messages + "</ul>"; } 

然后在我的ejs文件中有这个

 <div class="container"> <% if(error && error.length > 0) { %> <div class="alert alert-danger"> <strong> <%- error %> </strong> </div> <% } if(success && success.length > 0) { %> <div class="alert alert-success"> <strong> <%= success %> </strong> </div> <% } %> </div> 

我用<% – errors%>replace了<%= errors%>

其实更好..

EJS文件:

  <div class="container"> <% if(error && error.length > 0 ) { %> <div class="alert alert-danger"> <% if(error.length === 1) { %> <strong> <%= error %> </strong> <% } else { %> <ul> <% error.forEach(function(err) { %> <li> <strong> <%= err %> </strong></li> <% }) %> </ul> <% } %> </div> <% } if(success && success.length > 0) { %> <div class="alert alert-success"> <strong> <%= success %> </strong> </div> <% } %> </div> 

.js文件

 var messages = []; errors.forEach(function(msgObject) { messages.push(msgObject.message); }) req.flash("error", messages)