2016-11-15 131 views
0

這裏是我如何使用Node.js時,有一個問題:打印HTML與JavaScript

這是我在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> 

下面是我得到我的瀏覽器,當我點它頂部/ YXZ:

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

即使有換行符標記(<br/>),我也會得到一個長行文本顯示而不是HTML顯示。 我嘗試了各種可以找到的東西,但都沒有成功。

我應該怎麼做才能逐行獲取正常顯示?

+0

@mplungian感謝您的編輯。出於某種原因,我無法理解。 – Michel

+0

'xyz.ejs'可以自己改變嗎? – aring

回答

2

index.js:

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

xyz.ejs:(轉義的緩衝帶< % - code%>)

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

是的。有用!大。 – Michel

0

您不應該手動讀取文件。

你可以嘗試:

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

當然之前,您應該:

app.set('view engine', 'ejs'); 
+0

不,不。我不得不。我的目的是顯示其內容。否則,它沒有問題。不管怎麼說,還是要謝謝你。 – Michel