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实现PHP的print_r函数代码
Mar 14 NodeJs
轻松创建nodejs服务器(6):作出响应
Dec 18 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
Jul 26 NodeJs
nodeJs内存泄漏问题详解
Sep 05 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
用nodeJS搭建本地文件服务器的几种方法小结
Mar 16 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
nodejs连接mysql数据库及基本知识点详解
Mar 20 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
nodejs实现UDP组播示例方法
Nov 04 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
怎样在php中使用PDF文档功能
2006/10/09 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
javascript eval函数深入认识
2009/02/21 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Python列表list数组array用法实例解析
2014/10/28 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
python多线程并发及测试框架案例
2019/10/15 Python
Django操作session 的方法
2020/03/09 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
super()与this()的区别
2016/01/17 面试题
Java多态性的定义以及类型
2014/09/16 面试题
销售经理竞聘书
2014/03/31 职场文书
煤矿安全承诺书
2014/05/22 职场文书
金融专业求职信
2014/08/05 职场文书
德能勤绩工作总结
2015/08/11 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技