场景 :我已经开发使用一些交易页面的Node.js , 快递 + 把手的视图引擎和MongoDB的 。
现在的问题是模块集成我得到了一些上构建的网页时快速 + 翡翠作为视图引擎。
问 :如何整合建立在车把和一些关于翡翠的网页?
场景 :我已经开发使用一些交易页面的Node.js , 快递 + 把手的视图引擎和MongoDB的 。
现在的问题是模块集成我得到了一些上构建的网页时快速 + 翡翠作为视图引擎。
问 :如何整合建立在车把和一些关于翡翠的网页?
在yourapp.js
VAR =发动机要求( '巩固');
app.engine( '玉',engines.jade);
app.engine( '车把',engines.handlebars);
更多信息点击这里
快递4.0及以上的解决方案(直到它再次改变)
NPM安装所需的引擎。
// some examples npm install ejs npm install pug npm install handlebars
将发动机在使用app.js
。
app.set('view engine', 'pug'); app.set('view engine', 'ejs');
渲染你的模板,一定要设置文件扩展名。
// forces usage of the respective render engine by setting the file extension explicitly. res.render( 'about.ejs', { title: 'About' } ); res.render( 'about.pug', { title: 'About' } );
文档获取更多应用实例。
编辑
下面的评论与阿莫尔中号库尔卡尼讨论后,我回来了,再次分析了这些。
而事实证明,它比我还以为我得回去这里和大家分享我的解决办法相当简单。 使用巩固,像这样做:
先做需要。
var engines = require('consolidate');
然后,你可以删除或设置引擎和视图引擎...
我曾尝试删除所有app.engine
和app.set('view engine', '...');
和它的工作。 然而,将它比其他的'html'
将只对一个发动机工作。 所以,我只是将它设置为是肯定的。
我已经把它就像这样:
app.engine('html', engines.swig); // take note, using 'html', not 'ejs' or 'pug'..
app.set('view engine', 'html'); // also 'html' here.
再后来,当你做对app.render
,只是确保它具有文件扩展名,这将只是很好地工作。
res.render( 'theme.ejs', {}); // will render with ejs
res.render( 'theme.pug', {}); // will render with pug
只要确保有这些引擎(哈巴狗,EJS等。)安装和巩固将做休息。
旧的答案 。
与有关@Sergii答案,也没有为我100%的努力。 还有当我使用模板是引发错误的时间。 但是,与说无法查找这个模板在此目录中一个错误的错误消息。
我试图@azariah解决方案,但仍然没有奏效。
app.set('view engine', 'pug'); // does not make sense.
app.set('view engine', 'ejs'); // overriding the last .set()
使用consolodate.js提到什么工作对我来说是。
加入app.set('view engine', 'pug');
照常。
然后,在每一个时间我会打电话渲染,我设置的'view engine'
。
像这样:
req.app.set('view engine', 'ejs');
res.render( 'theme', theme );
我的这种担忧是,当多个用户同时将访问页面与不同的发动机,不知道这是否会发生碰撞,回来与错误查找那我有。
但我猜测,渲染是如此之快,它应该由其他的时间来完成req.app.set
被调用。