你的位置:首页 > Java教程

[Java教程]nodejs express框架一个工程中同时使用ejs模版和jade模版


  在某些项目中,比如你接手了一个别人的项目然后你不想用蛋疼的ejs,或者你不想用蛋疼的jade。你有不想重写之前的页面,那么你现在可能需要新引入ejs或者jade模块,你仅仅需要做下面两步也许就能完成使用两个模版的工作

1.consolidate.js

cd 到项目目录:

npm install consolidate --save

打开项目的app.js(也许你的叫其他名字)  

把app.js的形如下面的代码片段

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

改为

var engines = require('consolidate');app.engine('jade', engines.jade);app.engine('html', engines.ejs);// or use these// app.engine('jade', require('jade').__express);// app.engine('html', require('ejs').renderFile);app.set('view engine', 'jade');

重启工程就可以了

2.一点问题

在我的一个项目A里我实际用到的代码是

var engines = require('consolidate');app.engine('jade', engines.jade);app.engine('html', engines.ejs);// app.engine('jade', require('jade').__express);// app.engine('html', require('ejs').renderFile);app.set('view engine', 'jade');//多出以下一行app.set('view engine', 'html');

这种写法在项目A里可以使用,但在另一个项目B里发现解析不了jade模板

而在项目B中只能使用

var engines = require('consolidate');app.engine('jade', engines.jade);app.engine('html', engines.ejs);app.set('view engine', 'jade');//或者//app.engine('jade', require('jade').__express);//app.engine('html', require('ejs').renderFile);//app.set('view engine', 'jade');

求各位园友研究之后帮忙解答一下这是为什么?

ejs jade  consolidate 版本一致express 版本4.12.x