19.Express 中使用模板引擎
来源:互联网 发布:idc数据库 编辑:程序博客网 时间:2024/05/16 23:51
在 Express 中使用模板引擎
需要在应用中进行如下设置才能让 Express 渲染模板文件:
views
, 放模板文件的目录,比如:app.set('views', './views')
view engine
, 模板引擎,比如:app.set('view engine', 'jade')
然后安装相应的模板引擎 npm 软件包。
$ npm install jade --save
和 Express 兼容的模板引擎,比如 Jade,通过 res.render()
调用其导出方法 __express(filePath, options, callback)
渲染模板。
有一些模板引擎不遵循这种约定,Consolidate.js 能将 Node 中所有流行的模板引擎映射为这种约定,这样就可以和 Express 无缝衔接。
一旦 view engine
设置成功,就不需要显式指定引擎,或者在应用中加载模板引擎模块,Express 已经在内部加载,如下所示。
app.set('view engine', 'jade');
在 views
目录下生成名为 index.jade
的 Jade 模板文件,内容如下:
html head title!= title body h1!= message
然后创建一个路由渲染 index.jade
文件。如果没有设置 view engine
,您需要指明视图文件的后缀,否则就会遗漏它。
app.get('/', function (req, res) { res.render('index', { title: 'Hey', message: 'Hello there!'});});
此时向主页发送请求,“index.jade” 会被渲染为 HTML。
请阅读 “为 Express 开发模板引擎” 了解模板引擎在 Express 中是如何工作的。
为 Express 开发模板引擎
通过 app.engine(ext, callback)
方法即可创建一个你自己的模板引擎。其中,ext
指的是文件扩展名、callback
是模板引擎的主函数,接受文件路径、参数对象和回调函数作为其参数。
下面的代码演示的是一个非常简单的能够渲染 “.ntl” 文件的模板引擎。
var fs = require('fs'); // 此模板引擎依赖 fs 模块app.engine('ntl', function (filePath, options, callback) { // 定义模板引擎 fs.readFile(filePath, function (err, content) { if (err) return callback(new Error(err)); // 这是一个功能极其简单的模板引擎 var rendered = content.toString().replace('#title#', '<title>'+ options.title +'</title>') .replace('#message#', '<h1>'+ options.message +'</h1>'); return callback(null, rendered); })});app.set('views', './views'); // 指定视图所在的位置app.set('view engine', 'ntl'); // 注册模板引擎
现在 “.ntl” 文件就可以被正确地渲染了。接下来在 views 目录下创建一个名为 “index.ntl” 的模板文件,文件内容如下:
#title##message#
然后,按下面的示例创建一下路由:
app.get('/', function (req, res) { res.render('index', { title: 'Hey', message: 'Hello there!'});})
访问网站首页就能看到由 “index.ntl” 文件渲染出来的 HTML 页面了。
- 19.Express 中使用模板引擎
- 在Express中使用模板引擎
- 在Express中使用Handlebars模板引擎
- Express中使用自定义视图模板引擎
- 在express中使用ejs模板引擎
- 在Express项目中使用Handlebars模板引擎
- 17.express 的模板引擎使用
- express ejs模板引擎
- Express修改模板引擎
- Express框架中如何引用ejs模板引擎
- node+express 项目中安装ejs模板引擎
- express框架中如何引用ejs模板引擎
- express中创建ejs项目以及引用ejs模板引擎
- 在express 模板引擎的路由中加载socket.io
- Express框架中如何引用ejs模板引擎
- Express---jade模板引擎(二)
- node.js express中使用jquery模板
- express中ejs模板的基本使用
- double dispatch
- matplotlib:This probably means that Tcl wasn't installed properly.
- 将XML序列化成对象
- Android控件布局属性全解
- centos安装vim及其配置参考
- 19.Express 中使用模板引擎
- NodeJS 框架介绍
- Unity Cg Shader编程 第一章 第一节
- redis源码分析-adlist(链表)
- jQuery学习开始啦
- 生容易,活容易,生活不容易
- php实现简单的SQL Builder
- 能ping通Linux但是ssh连不上问题解决方法
- 如何十倍提高你的webpack构建效率