2011-09-06 772 views
9

是否可以在不需要模板引擎(如jade或ejs)的情況下創建快速(節點)應用程序。我在大學有一個大型的最後一年項目,我將使用node,express,socket.io,mongoDB和websockets。我不想讓自己也學習模板語言!使用express而不使用模板引擎

默認快遞使用玉 -t, - 模板添加模板支持(jade | ejs)。默認=玉

回答

12

是否有可能,而不需要爲模板引擎如翡翠或EJS

是的,它是建立明確(節點)應用程序。你可以使用HTML。或者只是使用EJS。 EJS是HTML的超集。

我不想讓自己也學習模板語言!

您可以在一天中學習模板語言。這真的會幫助你。去做就對了。這很值得。

+0

當涉及到任何與JavaScript有關的問題時,您總能得到答案,而且您的答案總是重要且信息豐富。謝謝! – Jack

+1

@JackBrown [你可以來聊天快速提問](http://chat.stackoverflow.com/rooms/642/node-js) – Raynos

+5

我認爲這不是關於學習一種新的模板語言,我只是認爲使用模板引擎會弄亂你的HTML頁面。想象一下,如果你有很多精心設計的html頁面,你必須將它們翻譯成全新的模板格式,這很糟糕。 – silent

3

如果您只想避免學習其他模板語言,您可能需要嘗試下劃線模板。他們只是JavaScript,無論如何你都會學習。

documentcloud.github.com/underscore/#template

你可以用它設置:

app.register('.html', { 
    compile: function(str, options){ 
     var compiled = require('underscore').template(str); 
     return function(locals) { 
      return compiled(locals); 
     }; 
    } 
}); 
1

最簡單的方式做這將是替換默認app.get(「/」)......下面的行。 然後把所有的魔法都放在index.html中。這對於單頁面應用程序來說至少可以工作得很好。

具有以下

app.get('/', function(request, response) { 
var readFile = "index.html"; 
var fileContents = fs.readFileSync(readFile); 

response.send(fileContents.toString()); 
}); 
1

最好的,現在的選擇是使用EJS(發動機),並將其配置爲接受和渲染HTML:

app.set('views', path.join(*__dirname*, 'views')) 
app.set('view engine', 'ejs'); // template engine 
app.engine('html', require('ejs').renderFile); // turn engine to use html 

注:您的所有觀點或模板有擴展名爲.html