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


Posted in NodeJs onDecember 28, 2015

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

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

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

NodeJs 相关文章推荐
NodeJS学习笔记之网络编程
Aug 03 NodeJs
NodeJs——入门必看攻略
Jun 27 NodeJs
nodeJS删除文件方法示例
Dec 25 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 NodeJs
Nodejs之TCP服务端与客户端聊天程序详解
Jul 07 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
关于Mac下安装nodejs、npm和cnpm的教程
Apr 11 NodeJs
nodejs中用npm初始化来创建package.json的实例讲解
Oct 10 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 NodeJs
详解nodejs内置模块
May 06 NodeJs
深入浅析NodeJs并发异步的回调处理
Dec 21 #NodeJs
基于nodejs+express(4.x+)实现文件上传功能
Nov 23 #NodeJs
Nodejs Express4.x开发框架随手笔记
Nov 23 #NodeJs
Nodejs的express使用教程
Nov 23 #NodeJs
nodejs初步体验篇
Nov 23 #NodeJs
Nodejs初级阶段之express
Nov 23 #NodeJs
基于html5和nodejs相结合实现websocket即使通讯
Nov 19 #NodeJs
You might like
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
php中spl_autoload详解
2014/10/17 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
JS实现数组按升序及降序排列的方法
2017/04/26 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
小程序双头slider选择器的实现示例
2020/03/31 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
用Python解决计数原理问题的方法
2016/08/04 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
python打包成so文件过程解析
2019/09/28 Python
Python实现快速排序的方法详解
2019/10/25 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
化工专业应届生求职信
2013/11/08 职场文书
2014年工人工作总结
2014/11/25 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
教师节简报
2015/07/20 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
Python学习之迭代器详解
2022/04/01 Python
python垃圾回收机制原理分析
2022/04/13 Python
MySQL存储过程及语法详解
2022/08/05 MySQL