位置: 编程技术 - 正文

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怎么用)

  • 城市维护建设税优惠政策
  • 出售无形资产属于资产处置损益吗
  • 哪些支出允许在企业所得税前扣除
  • 存货转为公允价值怎么算
  • 小规模纳税人汇算清缴要填什么表
  • 高工资怎么说
  • 支付土地流转费
  • 企业进货不收发票怎么做帐?
  • 承兑汇票打折支付如何账务处理?
  • 净现值为什么要除以它的折现率
  • 出租土地使用权计入什么科目
  • 应交增值税账面数
  • 一张报关单上最多不能超过
  • 小规模企业营业税
  • 普通发票跨年作废有影响吗
  • 稳岗补贴计入哪个科目
  • 纳税人为风险纳税人
  • 虚开增值税发票具体操作是怎样的?
  • 小规模季度不超过多少不用交税
  • 合同中没有明确违约责任怎么办
  • 递延所得税收益计算公式
  • 企业股权平价转让涉及哪些税费
  • 广告业发生错账怎么办
  • 转账户有误退回会计处理
  • 企业银行保证金账户怎么查询
  • 外贸企业增值税发票需要认证吗
  • 季报中现金流量表报的是当季的还是本年累计数
  • 给子公司拨款怎么记账
  • 如何把操作系统转移到固态硬盘
  • 开票税点算什么费用
  • 筹建期的开办费需要归集后才能一次性扣除吗
  • win7上网提速
  • php字符串赋值
  • PHP:Memcached::getStats()的用法_Memcached类
  • 将现金存入银行,登记银行存款日记账的依据一般是
  • 连接云服务器超时
  • vue中下载文件
  • php文件包含的4种方式
  • 比肩美国
  • 房租费发票可以抵扣增值税吗
  • mysql 内连接查询
  • SQLite3中的日期时间函数使用小结
  • 资质平移后以前的工程怎么办
  • 损益类账户期末有余额吗
  • 小型企业需要给员工买社保吗
  • 网站维护费用
  • 营业执照丢失公告后几天可以办注销
  • 管理费用里面包括哪些明细科目
  • 资金退回怎么记账
  • 纸质银行承兑到期怎么办
  • 公司办公室租金
  • 房地产企业内部控制的现状
  • 营业外支出包括
  • 应收账款如何做坏账
  • 坏账准备对资产负债表影响
  • 利用公式计算填空题
  • 醒狗音乐免费下载歌曲2017最新版
  • mysql启动成功但是无法连接
  • 怎么判断win7还是win10
  • win8分盘怎么分
  • 驱动安装过程中发生错误
  • centos基础命令
  • mcdlc.exe - mcdlc是什么进程文件 有何作用
  • win7重新安装windows
  • linux防火墙的主要内容
  • cordova怎么样
  • bat ping批处理
  • javascript如何学
  • 了不起的Nodejs 将JavaScript进行到底
  • 压缩的linux命令
  • vue $route $router
  • Python性能优化指南
  • android怎么运行
  • android 加密算法
  • 谈谈我对视觉传达的认识
  • 设置默认python版本
  • 安卓监听功能
  • 在监狱要花钱吗
  • 苏州税务局下班时间
  • 云南省昆明市税收优惠政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设