位置: 编程技术 - 正文

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

  • 原材料报废可以退税吗
  • 进项税转出的会计处理方法
  • 劳务报酬和工资薪金哪个税率高
  • 企业实缴不到位怎么办
  • 银行存款可以红字吗
  • 住宅小区共用部位有哪些
  • 未取得发票的收入怎么做账
  • 固定资产后续支出的确认和处理
  • 成品油购进数据未同步怎么办
  • 企业间贴现手续怎么办理
  • 开具的增值税专用发票上注明的金额
  • 研发部门房租可以抵税吗
  • 合伙企业个人所得税经营所得税率
  • 金税盘如何红冲已抵扣专票
  • 出口佣金可以在企业所得税前扣除吗
  • 收取会员费收入会计分录
  • 计提资产减值损失账务处理
  • 上个月的费用这个月开发票怎么做账
  • 运费发票备注栏样板
  • 个人补缴公积金需要什么手续
  • 如何把两个人的照片合在一起
  • win10专业版技巧
  • 高新技术企业研究开发费用加计扣除
  • 企业合并的增值税处理
  • 此应用无法在你的电脑上运行w11
  • win7右键设置方法
  • pytorch的
  • kb4586863更新
  • 其他应付款与应付款的区别
  • it最高工资
  • 游戏出现d3d11lostdevice
  • php 可变变量
  • 我想看阿尔伯塔
  • 若依框架和jeesite
  • 房地产企业借款可以用未建成的房子设定浮动抵押吗?
  • 销售方红字发票账务处理?
  • php数字转16进制
  • 小规模纳税人减免增值税会计处理
  • 营改增之前的建筑业税率是多少
  • 个体户可以不办公户吗
  • 3分钟认识Vue3的v-model
  • opencv焊点缺陷检测
  • 扩散模型和gan的区别
  • Servlet4.0 Response
  • mysql 5.7特性
  • 材料采购账户的借方登记什么
  • 基本户和零余额可以是一个账号么
  • 现金解款单是什么
  • 企业清算未分配利润怎么个税
  • 亏损企业对外捐赠的税前扣除
  • 多计提的工资怎么调账
  • 红冲暂估原材料如何做会计分录
  • 保险公司披露的上一年度保险责任准备金
  • 500万以下设备一次性扣除
  • 收购 发票
  • 事业单位收费可以收取相关服务费吗
  • 特别提款权和普通提款权的区别
  • 固定资产增加的方式有
  • sql中存储过程的用法
  • mysql 创建root用户和普通用户及修改删除功能
  • Fedora25踏上Wayland的路上讲解
  • win8系统升级
  • jucheck.exe
  • 如何查看电脑型号及配置
  • aspnet_admin.exe进程是安全的吗 aspnet_admin进程信息查询
  • win8怎么启动资源管理器
  • js实现apply函数
  • jquery的validate前端表单验证
  • jquery删除节点的元素
  • unity服务器端
  • jquery怎么遍历
  • jquery实现图片横向移动
  • 欢迎使用来电提醒业务是什么意思
  • js立即执行函数作用
  • Sublime Text 3常用插件及安装方法
  • 中华人民共和国成立于1949年10月1日到今年是多少周年
  • 别墅与普通住宅的优缺点
  • 开健身会所国家有补贴吗
  • 税收优惠与政府补助对于企业研发来说哪个优惠力度大
  • 物化政的大学有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设