使用javascript打印HTML

时间:2016-11-15 10:11:29

标签: javascript html node.js ejs

这是我在使用Node.js时遇到的问题:

这是我在index.js中的代码:

.....
app.get('/xyz', function(request, response) {
  fs = require('fs');
  fs.readFile('views/pages/xyz.ejs', 'utf8', function (err,data) {

  if (err) {
    return console.log(err);
  }

  response.render('pages/xyz', {result:data});
  });
});
.....

这是xyz.ejs:

<!DOCTYPE html>
<html>
<head>
</head>

<body>

<div class="container">

<% displayStr=result.replace("\n", "<br/>"); %>
<%= displayStr %>

</div>

</body>
</html>

以下是我在浏览器中看到的内容,当我将其指向top / yxz时:

<!DOCTYPE html><br/><html> <head> </head> <body> <div class="container"> <% displayStr=result.replace("\n", "<br/>"); %> <%= displayStr %> </div> </body> </html>

即使有换行标记(<br/>),我也会得到一个长行文本显示而不是HTML显示。 我尝试了各种我能找到的东西,但没有任何效果。

我该怎么做才能逐行获得正常显示?

2 个答案:

答案 0 :(得分:2)

index.js:

...
response.render('pages/xyz', {result:'<xmp>'+data+'</xmp>'});
...

xyz.ejs :(非强制缓冲&lt;% - 代码%&gt;)

...
<% displayStr=result.replace("\n", "<br/>"); %>
<%- displayStr %>
...

答案 1 :(得分:0)

您不必手动阅读文件。

你可以尝试:

app.get('/xyz', function(request, response) {
  response.render('pages/xyz');
});

当然,在您应该:

之前
app.set('view engine', 'ejs');