2011-09-06 24 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