Home > Article > Web Front-end > Nodejs express framework uses both ejs template and jade template_node.js in one project
In some projects, for example, if you take over someone else’s project and you don’t want to use the painful ejs, or you don’t want to use the painful jade. If you don’t want to rewrite the previous page, then you may need to introduce the ejs or jade module now. You only need to do the following two steps to complete the work of using the two templates
1.consolidate.js
cd to the project directory:
npm install consolidate --save
Open the app.js of the project (maybe yours is called another name)
Change app.js into the following code snippet
app.set('view engine', 'jade');
changed to
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');
Just restart the project
2. A little question
The code I actually used in one of my projects A is
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');
This writing method can be used in project A, but in another project B, it is found that the jade template cannot be parsed
And in project B only
can be usedvar 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');
How to reference the ejs template engine in the Express framework
1. How to install the ejs template engine in the project
Use the following commands to build the basic structure of the website in the NodeJS guide:
express -t ejs microblog
Continue running after running this command
cd microblog && npm install (installation project dependency properties), found that the installed template engine is jade, not ejs. The reason is that the current version no longer has the -t command, it has been changed to
express -e microblog
After running this command, continue to run cd microblog && npm install, and the ejs template engine will be installed
But versions of express3 and above cancel layout by default, so layout.ejs is not generated in the views folder.
2. After installing ejs, how to use the ejs layout template
Install express-partials
Switch to the project directory in cmd and run npm install express-partials or
Add "express-partials": "*" to dependencies in package.json. Then run npm install in the project directory.
Then quote express-partials in app.js, quoting method:
1. Add reference var partials = require('express-partials');
2. Add app.use(partials());
below app.set('view engine', 'ejs');
Call layout:'template name' where the template needs to be referenced Example
app.get('/reg', function (req, res) { res.render('reg', { title: '用户注册', layout: 'template' }); });
The above content introduces to you the use of ejs template and jade template in a project of Nodejs express framework. I hope you like it.