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全栈框架StrongLoop推荐
Nov 09 NodeJs
nodejs教程之环境安装及运行
Nov 21 NodeJs
轻松创建nodejs服务器(4):路由
Dec 18 NodeJs
你一定会收藏的Nodejs代码片段
Feb 04 NodeJs
Nodejs如何复制文件
Mar 09 NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 NodeJs
NodeJs下的测试框架Mocha的简单介绍
Feb 22 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
nodejs实现连接mongodb数据库的方法示例
Mar 15 NodeJs
NodeJs项目中关闭ESLint的方法
Aug 09 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
php实现读取超大文件的方法
2014/07/28 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
一分钟理解js闭包
2016/05/04 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
JS中的==运算: [''] == false —>true
2016/07/24 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Django admin美化插件suit使用示例
2017/12/12 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
基于python3抓取pinpoint应用信息入库
2020/01/08 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
英国儿童图书网站:Scholastic
2017/03/26 全球购物
新书吧创业计划书
2014/01/31 职场文书
解除同居协议书
2015/01/29 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
西游降魔篇观后感
2015/06/15 职场文书
装修安全责任协议书
2016/03/22 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python