位置: 编程技术 - 正文

nodejs中art-template模板语法的引入及冲突解决方案

编辑:rootadmin

推荐整理分享nodejs中art-template模板语法的引入及冲突解决方案,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

使用Webstorm创建nodejs express应用时,默认使用的是jade或者ejs模板,对于不习惯这两种模板语法的人来说确实不是很方便。没关系,这里我们使用art-template模板引擎,使用后可以直接使用html模板:

1、安装art-template

2、修改app.js文件,添加如下代码:

3、然后直接创建html页面,js路由便可以直接访问了

4、首先在app.js中添加如下路由拦截:

然后是index.js文件:

这里我跳转到index2页面(配置好了art-template模板引擎后,视图层默认文件后缀即为html),index2.html页面如下:

运行应用,浏览器输出如下:

nodejs中art-template模板语法冲突解决方案

art-template的github地址: {{ }} 和尖括号语法 <%= %>

本篇文章主要介绍一下在nodejs中,art-template如何解决模板引擎语法冲突

nodejs中art-template模板语法的引入及冲突解决方案

1.1-模板引擎语法冲突的场景

1.如果一个html文件中,既存在客户端渲染,也存在服务端渲染的话,那么这两种渲染的模板引擎语法不能一致,否则在加载时服务端渲染就已经将客户端的模板也一并渲染了

2.一般遇到这种情况,例如一个html文件中既有服务端渲染又有客户端渲染的情况下,服务端的模板引擎我们使用 {{ }} 语法,客户端渲染我们使用 <%= %>

3.在nodejs中,我们使用npm来安装art-template之后: npm install art-template ,默认情况下art-template是同时支持浏览器端与服务端的,并且他们之间的导入文件是不同的

1.2-配置art-template服务端模板语法

1.如果是服务端,我们使用 require('art-template') 来导入,此时加载的是 index.js ,这里的index.js值得是根目录下的index.js,这是nodejs模块加载机制的入口,它的内部非常简单,就是做了一个文件导入操作。

服务端的art-template的模板语法源代码在 art-template 的 lib 文件夹下的 compile文件夹 对应的 adapter 中,两种模板语法分别对应的文件是 rule.art.js简洁语法 , rule.native.js原生语法 ,如下图

2.如果是客户端,我们则不能使用服务端的模板语法文件,这是因为nodejs遵循的是commonjs的规范,所有的文件API都是以模块的形式导出,在 art-template 文件夹, lib -> compile 文件夹中有一个专用于客户端的模板语法文件 template-web.js ,这是一个压缩的js包

3.浏览器的模板语法默认支持两种语法,简洁和原生,这个无法修改。但是我们可以通过修改服务端的源代码,使服务端只支持一种模板语法 {{ }} ,这样的话我们在客户端使用 <%= %> 语法,服务器就无法渲染了

经过本人对 art-template 源码的分析,发现 art-template 的服务端两种模板语法是在 compile 文件下有一个 default.js 文件中导入的,所以我们只需要稍微修改一下源码即可

默认是一个数组来配置模板语法,[nativeRule, artRule]同时支持两种模板语法,我们去掉nativeRule即可,此时服务端只支持 {{}} 语法,该代码修改不会对客户端造成影响

大功告成,此时服务端与客户端的模板语法就不会冲突了

标签: nodejs中art-template模板语法的引入及冲突解决方案

本文链接地址:https://www.jiuchutong.com/biancheng/368547.html 转载请保留说明!

上一篇:Node.js实现发送邮件功能(nodejs发送http请求)

下一篇:mongoose设置unique不生效问题的解决及如何移除unique的限制(mongoose怎么用)

  • 电商行业会计核算的特点
  • 法人买社保不领钱可以吗
  • 汇算清缴企业所得税弥补亏损明细表怎么填
  • 5个点的税点
  • 发票丢失了能开红字发票吗
  • 异地分公司需要什么手续
  • 发票服务名称都有什么
  • 包装纸箱属于原材料吗
  • 计提印花税走什么科目
  • 教育用地转让缴哪些税
  • 去年多计提的生育津贴
  • 企业所得税减半征收计算公式
  • 统借统还如何缴纳增值税
  • 餐饮发票可以抵扣个人所得税吗
  • 个人独资企业股权能出让吗
  • 资本公积转增的股票可以转让吗
  • 什么情况下的发烧才会全身酸痛呢
  • 知识产权支出
  • 一般纳税人怎么查询
  • 2019一般纳税人和小规模纳税人的区别
  • 设备安装合同预付款比例
  • 进料进口
  • linux怎么开启远程
  • mac版本系统
  • 进项发票大过销项,退税只退13个点的增值税吗
  • php常用函数
  • PHP:mb_ereg_search_pos()的用法_mbstring函数
  • sudo命令无法执行
  • 商品购进核算
  • 未售车位出租有哪些税要缴纳
  • pc程序是什么
  • 补缴断交的医保划算吗
  • 应用程序无法正常启动0xc000007b
  • 鼠标按键多有用吗
  • 建筑公司结算会计
  • php socket_create
  • 迁徙的季节主要从哪几个方面写秋天的景物
  • 汇总纳税企业总分机构信息备案
  • 固定资产一次性扣除后第二年账务处理
  • php正则函数内容匹配
  • 基于深度学习的轴承寿命预测实践,开发CNN、融合LSTM/GRU/ATTENTION
  • 设置cmd命令
  • diff比较文件不同输出
  • 工会经费减除项包括哪些
  • 旅行社代订的机票可以退吗
  • 企业所得税的营业收入包括营业外收入吗
  • ado连接access数据库
  • 购买方收到的违约金
  • 公司与公司之间人与人之间最大的区别
  • 损益类会计科目有哪些
  • 开具增值税专用发票含税吗
  • 如何抵扣不动产增值税
  • 折旧年限的最新规定2021
  • 环保局罚款记什么科目
  • 装修公司做账涉及科目
  • 采购成品油会计分录
  • 委托收款的流程
  • 建账需要准备什么东西
  • 备查账簿有没有固定的格式
  • windows下修改uuid的工具
  • 获取客户端所有cookie对象的方法
  • 游戏卡怎么打开
  • xp系统的存储在哪里
  • mac自带功能流程图
  • Win10 Redstone版Build 14251现身 正式版将在7月份发布
  • w10系统如何
  • 网络连接受限怎么处理win8
  • window10自动维护功能有什么用
  • 安装ghost win7
  • cocos2dx游戏开发框架
  • cocos 2d x
  • 快速解决胃胀气
  • JavaScript的strict模式与with关键字介绍
  • 统计一组数据各个数字出现的次数
  • js模拟实现new
  • 游戏客服怎么跟客户聊天
  • javascript怎么样
  • 贵阳网上办税服务厅
  • 积极配合税务局工作
  • 航天金穗280怎么入账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设