Nodejs express框架一个工程中同时使用ejs模版和jade模版

前端技术 2023/09/02 JavaScript

在某些项目中,比如你接手了一个别人的项目然后你不想用蛋疼的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\'); 

Express框架中如何引用ejs模板引擎

 1.如何在项目中安装ejs模板引擎

在NodeJS指南中利用利用以下命令建立网站的基本结构:

express -t ejs microblog

运行这个命令后继续运行

cd microblog && npm install(安装项目的依赖属性),发现安装的模板引擎是jade,而不是ejs。原因是现在的版本已经没有-t这个命令了,改为

express -e microblog

运行完这个命令,继续运行cd microblog && npm install,ejs模板引擎就安装好了

但是express3以上的版本把layout默认给取消了,所以现在在views文件夹下并没有生成layout.ejs。

2.安装了ejs后,如何使用ejs的layout模板

安装express-partials

在cmd中切换到项目目录,运行npm install express-partials或者

在 package.json 里面的 dependencies 添加 \"express-partials\": \"*\"。然后在项目目录下运行 npm install 。

然后在app.js 里面引用 express-partials,引用方法:

1.添加引用 var partials = require(\'express-partials\');

2.在 app.set(\'view engine\', \'ejs\'); 下面添加 app.use(partials());

在需要引用模板的地方调用 layout:\'模版名称\' 示例

app.get(\'/reg\', function (req, res) {
res.render(\'reg\', {
title: \'用户注册\',
layout: \'template\'
}); 
}); 

以上内容给大家介绍了Nodejs express框架一个工程中同时使用ejs模版和jade模版,希望大家喜欢。

本文地址:https://www.stayed.cn/item/5491

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。