2014-02-21 15 views
6

當我使用Parse.com的Express.js時,如何在我的視圖文件中使用.html擴展名而不是.ejs?使用Parse.com Express.js將.ejs擴展名更改爲.html

我將EJS分隔符更改爲<??>,因爲我已習慣於PHP。這工作得很好,但我似乎無法改變我的看法文件的擴展名:

我已經試過如下:

var express = require('express'); 
var ejs = require('ejs'); 
var app = express(); 

ejs.open = '<?'; 
ejs.close = '?>'; 

app.set('view engine', 'ejs'); 
app.engine('.html', ejs.renderFile); 
app.set('views', 'cloud/views'); app.use(express.bodyParser()); 

app.get('/', function(req, res) { 
    res.render('Test', { message: 'Hello Express!' }); 
}); 

app.listen(); 

我也得到一個內部服務器錯誤。

我也試着消除了相同的結果這一行:

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

+1

我不確定誰投下了這個問題,但它是一個很好的問題。我只是沒有類似的把手,並將所有.handlebars/.hbs文件改爲.html,讓我看看能否爲你工作。 – jemiloii

+0

我爲你發佈了一個答案,如果有效的話,把它作爲正確的,如果不告訴我,所以我可以幫助! – jemiloii

+0

嗨Jemilol,我實際上已經嘗試過,並沒有奏效。我放棄了使用Parse.com來託管我的Express項目的想法。這是一個非常奇怪的,受限制的環境。而他們不清楚你可以做什麼,也不能做你的'服務器'。我選擇在Digital Ocean上啓動我自己的Node/Express服務器,這非常棒。 – AJB

回答

20
app.set('view engine', 'html'); 
app.engine('html', ejs.renderFile); 

所以我也app.set爲HTML和app.engine爲HTML和它爲我工作。

+0

改變了我的想法,使這個正確的答案。但是,我從來沒有得到過與Parse.com的合作,儘管這是使用Express.js實現此目標的正確語法。 – AJB

1

這樣的工作太:

app.set('view engine', 'html'); 
app.engine('html',require('ejs').renderFile); 

有人知道使用這種方法的任何問題?

+3

這是一樣的。接受的答案是假設'var ejs = require('ejs')'是早先指定的。 –

相關問題