express中使用art-template

art-template是一个高性能的JavaScript模板引擎,适用于NodeJS和浏览器。它通过预声明作用域提升渲染速度,支持模板继承、调试友好,且体积小巧。配置Express应用,结合art-template进行视图渲染,例如在res.render()中使用模板文件。同时,教程还介绍了如何配置Express托管静态资源,方便引用CSS等文件。
摘要由CSDN通过智能技术生成

介绍

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

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

特性

  1. 拥有接近 JavaScript 渲染极限的的性能
  2. 调试友好:语法、运行时错误日志精确到模板所在行;
  3. 支持在模板文件上打断点(Webpack Loader)支持 Express、Koa、Webpack
  4. 支持模板继承与子模板
  5. 浏览器版本仅 6KB 大小

安装

npm install --save art-template
npm install --save express-art-template

配置

const express = require('express')
const path = require('path')
var app = express()

// 当渲染以 .art 结尾的资源文件的时候使用 express-art-template
app.engine('art', require('express-art-template'));
// art-template 模板引擎配置
app.set('view options', {
    debug: process.env.NODE_ENV !== 'production'
})
// 模板文件的存储目录, 不配置默认就是views目录
app.set('views', path.join(__dirname, 'views'))
// 可以省略的模板文件后缀名
app.set('view engine', 'art')

const todos = [
  { id: 1, title: '吃饭' },
  { id: 2, title: '睡觉' },
  { id: 3, title: '健身' },
  { id: 4, title: '学习' },
  { id: 5, title: '读书' }
]

// routes
app.get('/', (req, res) => {
  res.render('index', {
    todos,
    foo: '我是foo'
  })
})

只要配置了模板引擎,就可以使用 res.render 方法渲染页面了

html页面

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  {{ foo }}
  <ul>
    {{ each todos }}
      <li> {{ $value.title }} </li>
    {{ /each }}
  </ul>
</body>
</html>

在这里插入图片描述

托管静态资源

Express 单独提供了一个内置中间件用来托管静态资源

const express = require('express')
const path = require('path')
const app = express()

// 访问时不加前缀
app.use(express.static(path.join(__dirname,'./public')))

// 访问时加前缀,这个前缀可以改任何名字,在使用的时候添加上就行
app.use('/public', express.static(path.join(__dirname,'./public')))

.html中直接这样引入css文件

<!-- 不加前缀 -->
<link rel="stylesheet" href="/css/main.css">
<!-- 加前缀 -->
<link rel="stylesheet" href="/public/css/main.css">

资源托管的配置项

app.use('/public', express.static(
  path.join(__dirname,'./public'),
  {
  	// 发送指定的目录索引文件。设置为false可禁用目录索引。
    index: ['index.html']
  }
))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值