使用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()
。
我必须遗漏一些简单的内容,但我似乎无法找到合适的搜索字词来获得有关为何会发生这种情况的答案。
答案 0 :(得分:0)
在插值发生之前,需要输出管道|
字符。这就像你将文本硬编码到textarea中一样。
所以:
...
label(for="news-textarea")
textarea(id="news-textarea")
| #{news}
解决了这个问题。