这是我在使用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显示。
我尝试了各种我能找到的东西,但没有任何效果。
我该怎么做才能逐行获得正常显示?
答案 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');