在node.js中使用js模板引擎artTemplate

本文介绍了art-template,一个快速的模板引擎,通过作用域预声明提升性能,支持NodeJS和浏览器。文章展示了标准和原始模板语法,以及如何在HTTP服务中渲染模板和使用实例,包括if判断和循环渲染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

art-template 是一个简约、超快的模板引擎。

它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器

模板

art-template 同时支持两种模板语法。标准语法可以让模板更容易读写;原始语法具有强大的逻辑处理能力。

标准语法

{{if user}}
  <h2>{{user.name}}</h2>
{{/if}}

原始语法

<% if (user) { %>
  <h2><%= user.name %></h2>
<% } %>

渲染模板

var template = require('art-template');
var html = template(__dirname + '/tpl-user.art', {
    user: {
        name: 'aui'
    }
});

核心方法

// 基于模板名渲染模板
template(filename, data);

// 将模板源代码编译成函数
template.compile(source, options);

// 将模板源代码编译成函数并立刻执行
template.render(source, data, options);

安装

npm install art-template --save

使用

//引入http服务模块
let http=require('http');
//引入文件系统模块
let fs=require('fs');
//引入地址解析模块
let url=require('url');
//引入art-template模板
const artTemplate=require('art-template');
//申明变量
let user={name:'小明',age:18};
//创建服务
http.createServer((req,res)=>{
    //设置编码
    res.setHeader('Content-Type','text/html;charset=utf-8');
    //得到请求地址
    let {pathname,query}=url.parse(req.url,true);//使用了ES6的解构
    //读取数据
    fs.readFile('./test.html','utf-8',(error,data)=>{
        if (error) throw error;
        //将数据渲染到页面
        let datas=artTemplate.render(data.toString(),{user:user});
        //返回页面
        res.end(datas);
    });
}).listen(4000,()=>{//设置端口号并启动服务器
    console.log(new Date())
});

页面信息
在这里插入图片描述

测试结果

在这里插入图片描述
如果想要里面的属性就直接点

使用if

在这里插入图片描述
结果
在这里插入图片描述

使用循环

//申明数组
let userList=[{name:'小明1',age:18},{name:'小明2',age:28},{name:'小明3',age:38},{name:'小明4',age:48},{name:'小明5',age:58}];
//将数据渲染到页面
let datas=artTemplate.render(data.toString(),{user:user,userList:userList});

页面代码
在这里插入图片描述
结果
在这里插入图片描述
注:if判断和each循环有开始标签,也要有结束标签

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值