在 Express中配置使用 art-template 模板引擎 --- express-art-template

1. 模板引擎

  • 为了使 art-template模板引擎能够更好地和Express框架配合,模板引擎在原art-template模板引擎的基础上封装了 express-art-template
安装

使用 npm install art-template express-art-template 命令进行安装

配置
// 配置使用 art-template 模板引擎
// 第一个参数表示: 当渲染以 .art 结尾的文件的时候,使用 art-template 模板引擎
// express-art-template 是专门用来在 Express 中把art-template 整合到 Express中的
// 虽然我们这里不需要加载 art-template ,但是也必须安装
// 原因就在于 express-art-template 依赖了 art-template

app.engine('art', require('express-art-template'));
使用

1.基础使用:

// Express 为 response 相应对象提供了一个方法:render
// render 方法默认是不可以用的,但是如果配置了模板引擎,就可以使用了
// res.render('html模板名',{模板数据})
// 第一个参数不能写路径,默认会去项目中的views目录查找该模板文件
// 也就是说 Express 有一个约定: 开发人员把所有的视图文件都放到views 目录中
// 如果想要修改默认的views 目录,则可以:app.set('views',render 函数的默认路径)
// 但是需要注意:这样的话,要把404.html 改成 404.art,并且文件名也要改

app.get('/', function(req, res) {
    res.render('404.art')
})

2.修改默认路径:

在这里插入图片描述

ps:两个app.set语句的第一个参数 views 和 view engin 都是固定的,是模板内部规定好的

3.如果不喜欢用art,或者有些编辑器识别不了,可以使用以下方法:

app.engine('html', require('express-art-template'));

app.get('/', function(req, res) {
    res.render('404.html')
})

补充:在express 中重定向的 API : res.redirect(’/’)

2. app.locals对象

关于渲染模板数据,在真实的开发中,有这样一种场景,在不同的页面中总会有一些公共区域,公共区域所要展示的数据都是一样的,在代码当中要如何查询这个公共数据呢?

最直接的做法就是在不同的页面路由中都去查询这个数据,然后再通过render方法填充到模板中,但这样做会产生非常多的冗余代码。

有没有一种办法,让查询公共数据的代码只写一次,然后在所有需要用到这个数据的模板中都可以拿到这个数据。

在app服务器对象下面有一个locals对象,我们可以将公共数据作为locals下面的属性。locals下面的数据在所有的模板中都可以直接获取到。

使用

将变量设置到 app.locals 对象下面,这个数据在所有的模板中都可以获取到。

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值