Node.js篇-1.模板引擎

本文介绍了模板引擎的概念,以art-template为例详细讲解了如何安装、使用模板引擎进行字符串拼接,以及模板语法、条件判断、循环、子模板和模板继承等高级功能。此外,还提及了模板配置和在实际项目中的应用,如路由管理和静态资源服务。
摘要由CSDN通过智能技术生成

模板引擎

基础概念

模板引擎

第三方模块

让开发者以更加友好的方式拼接字符串,使项目代码更加清晰,易于维护

art-template模板引擎

  1. npm install art-template下载
  2. const template = require('art-template')引入模板引擎
  3. const html = template('模板路径',数据); 告诉模板引擎要拼接的数据和模板在哪

art-template代码示例

// 导入模板引擎模块

const template = require('art-template');

// 将特定模板与特定数据进行拼接

const html = template('路径',{

    data:{

        name: '张三',

        age: 20

    }

})



// 模板中的代码

<div>

    <span>{{ data.name }}</span>

    <span>{{ data.age }}</span>

</div> 

模板引擎语法

模板语法

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

输出

将某项数据输出在模板中,标准语法和原始语法如下:

  • 标准语法: {{ 数据 }}
  • 原始语法: <%= 数据 %>

原文输出

如果数据中携带html标签,默认模板引擎不会解析标签,会将其转义后输出

  • 标准语法: {{ ``@数据`` }}
  • 原始语法: <%- 数据 %>

条件判断

在模板中可以根据条件来决定显示哪块HTML代码

<!--标准语法-->

{{if}}

    xxx

{{else if}}

    xxx

{{else}}

    xxx

{{/if}}



<!--原始语法-->

循环

<!--标准语法-->

{{each 数据}} 

    {{ $index }}

    {{ $value }}

{{/each}}



<!--原始语法-->

<% for (var i = 0, i < target.length, i++) { %>

    <%= i %>

    <%= target[i] %>

<% } %>

子模板

使用子模板可以将网站公共区块(头部,底部)抽离到单独的文件中

  • 标准语法: {{ include '模板路径' }}
  • 原始语法: <% include('模板') %>

模板继承

使用模板继承可以将网站HTML骨架抽离到单独的文件中,其它页面模板可以继承骨架文件

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

模板继承示例

<!doctype html>

<html>

    <head>

        <meta charset="utf-8">

        <title>HTML骨架模板</title>

        {{block 'head'}}{{/block}}

    </head>

    <body>

        {{block 'content'}}{{/block}}

    </body>

</html>
<!--index.art 首页模板-->

{{extend '路径'}}

{{block 'head'}}<link rel='stylesheet' href='custom.css'>{{/block}}

{{block 'content'}}

    <p>This is just an awsome page.</p>

{{/block}}

模板配置

  1. 向模板中导入变量 template.defaults.imports.变量名 = 变量值
  2. 设置模板根目录 template.defaults.root
  3. 设置默认模板后缀 template.defaults.extname

案例

  1. 建立项目文件夹并生成项目描述文件
  2. 创建网站服务器实现客户端和服务器端通信
  3. 连接数据库并根据需求设计学员信息表
  4. 创建路由并实现页面模板呈递
  5. 实现静态资源访问
  6. 实现学生信息添加功能
  7. 实现学生信息展示功能

第三方模块 router

功能: 实现路由

使用步骤:

  1. 获取路由对象
  2. 调用路由对象提供的方法创建路由
  3. 启用路由,使路由生效
const getRouter = require('router')

const router = getRouter();

router.get('/add', (req,res) => {

    res.end('Hello World!')

})

server.on('request', (req,res) => {

    router(req,res,() => {})

})

第三方模块 serve-static

功能: 实现静态资源访问服务

使用步骤:

  1. 引入serve-static模块获取创建静态资源服务功能的方法
  2. 调用方法创建静态资源服务并制定静态资源服务目录
  3. 启用静态资源服务功能
const serveStatic = require ('serve-static')

const serve = serveStatic('静态资源目录')

server.on('request', () => {

    serve(req, res, () => {})

})

server.listen(3000)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值