javascript - 如何让 connect-flash 返回多条消息或带有换行符的一条消息?

标签 javascript node.js newline flash-message connect-flash

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

我创建了一个表单,并且正在对用户输入进行后端验证。基本上,我有一个 var,“messages”,每次遇到输入错误时,我都会将错误附加到消息中。

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

(我还使用指示性 -- http://indicative.adonisjs.com/ -- 进行错误验证。它返回一个数组错误)

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

req.flash("error", messages);

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

我的问题是 connect-flash 忽略换行符。即,我得到类似的东西:

enter image description here

我希望每个错误消息都位于单独的行上。我似乎无法找到实现这一目标的方法。有什么想法吗?

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

hello goodbye

而不是

hello
goodbye

最佳答案

您的原始帖子中缺少一些可以帮助您解决自己的问题的内容。

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

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 %}

关于javascript - 如何让 connect-flash 返回多条消息或带有换行符的一条消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42233828/

相关文章:

javascript - 如果使用 jQuery datepicker 为空,我需要它返回 0

javascript - 异步逐行文件读取

javascript - 预加载器不预加载并第二次加载页面

python:使用回车和逗号打印不起作用

java - Java 中的换行转义序列未以正确的方式取消转义

javascript - 停止播放视频

javascript - socket.io 路由器,分配给多个实例之一

javascript - 找不到模块子进程

python - 仅在Electron中的python脚本执行结束时收到PythonShell消息

ruby-on-rails - rails 3 : Why does an indent appear when repopulating text_areas with line breaks?