【发布时间】:2011-11-11 05:05:57
【问题描述】:
是否可以在不需要jade或ejs等模板引擎的情况下创建一个express(节点)应用程序。我在大学有一个大型的最后一年项目,我将使用 node、express、socket.io、mongoDB 和 websockets。我不想让自己也不得不学习模板语言!
express默认使用jade -t, --template 添加模板支持 (jade|ejs)。默认=翡翠
【问题讨论】:
是否可以在不需要jade或ejs等模板引擎的情况下创建一个express(节点)应用程序。我在大学有一个大型的最后一年项目,我将使用 node、express、socket.io、mongoDB 和 websockets。我不想让自己也不得不学习模板语言!
express默认使用jade -t, --template 添加模板支持 (jade|ejs)。默认=翡翠
【问题讨论】:
是否可以在不需要jade或ejs等模板引擎的情况下创建一个express(node)应用程序
是的。您可以只使用 HTML。或者只是使用 EJS。 EJS 是 HTML 的超集。
我也不想让自己负担学习模板语言的负担!
您可以在一天内学习一门模板语言。它真的会帮助你。去做就对了。这是值得的。
【讨论】:
如果您只想避免学习另一种模板语言,您可能想尝试下划线模板。它们只是 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);
};
}
});
【讨论】:
执行此操作的最简单方法是将默认的 app.get('/')... 行替换为以下内容。 然后把所有的魔法都放在 index.html 中。这至少对于单页应用程序来说效果很好。
以下
app.get('/', function(request, response) {
var readFile = "index.html";
var fileContents = fs.readFileSync(readFile);
response.send(fileContents.toString());
});
【讨论】:
目前最好的选择是使用 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 扩展名。
【讨论】: