从Node / Express发送Jade文本数据呈现为打开/关闭HTML标记

时间:2016-05-04 11:54:18

标签: node.js express pug fs

使用fs我打开一个包含单行文本的简单文本文件。返回的data的console.log看起来是正确的,但是当通过res.render将其传递到Jade模板时,视图会在textarea中将其显示为打开和关闭标记(因此它出现两次)。它只是简单的文本行。

路由器:

router.get('/userlogin', auth, function(req, res, next) {

  function getData() {
    fs.readFile('./views/news.txt', 'utf8', function(error, data) {

      if (error) {
        console.log("Error: " + error);
      }

      else {
        console.log("Found file! Contents: " + data);
        res.render('components/editor', { title: 'Simple News Editor', news: data });
      }
    });
  }

getData();

});

然后是当前的玉模板:

extends ../layout

block content

  div(class="editor-header")
    h1 Simple News Editor

  div(class="editor-content")
    label(for="news-textarea")
      textarea(id="news-textarea")
        #{news}

数据正好被传递到模板中,问题是它在data调用中使用fs呈现textarea,看起来就像在textarea中一样:< / p>

<This is a test></This is a test>

我不知道这个打开/关闭标记的位置发生了什么,我尝试在路由器功能和jade变量本身的数据上调用.toString()

我必须遗漏一些简单的内容,但我似乎无法找到合适的搜索字词来获得有关为何会发生这种情况的答案。

1 个答案:

答案 0 :(得分:0)

在插值发生之前,需要输出管道|字符。这就像你将文本硬编码到textarea中一样。

所以:

...
label(for="news-textarea")
  textarea(id="news-textarea")
    | #{news}

解决了这个问题。