在Express.js中使用转义字符呈现文本文件

时间:2018-04-11 20:08:01

标签: javascript node.js express text escaping

我有一个JSON对象,其中一个字段中包含一个文本文件,我将快速渲染为" text / plain"发送回复时但是,每当它呈现时,它都会忽略' \ n'在我的文字中换行,只需在一行上打印所有内容,而不是' \ n' s。如何在输出的文本中获取换行符?

我的JSON对象如下所示:

{
  filename: 'file.txt',
  body: 'hello\ngoogbye\nhello again\n'
}

我的代码如下所示:

config.textfiles.forEach(file => {
  router.get(`/${file.filename}`, redisCache.route(cacheRoute), (req, res, next) => {
    if (is.obj(file.body)) file.body = JSON.stringify(file.body)
    file.layout = 'blank'
    if (file.filename.endsWith('.txt')) res.header('Content-Type', 'text/plain')
    if (file.filename.endsWith('.xml')) res.header('Content-Type', 'application/xml')
    if (file.filename.endsWith('.json')) res.header('Content-Type', 'application/json')
    res.render('blank', file)
  })
})

我的车把模板如下所示:

{{{body}}}

输出如下:

hello goodbye hello again

我期待和渴望的是输出看起来像这样:

hello
goodbye
hello again

我尝试使用\ n和\ r \ n进行转义,但在这两种情况下,它只是将它们转换为空格。当我尝试\ n时,它将\ n呈现为文本而不是空格。

1 个答案:

答案 0 :(得分:0)

您必须使用<br/>代码,\n代表console.log函数,请参阅此Thread,以显示unscaped html,保持三重 - 藏匿{{{...}}}