在node环境下parse Smarty模板的使用示例代码

因为某种原因,我们的项目必须采用smarty模板,一直没找到好用的npm包
不得已扒开了fis3-smarty, gulp-smarty的代码,找到了一个npm包
smarty4Js
然后解决了node环境渲染smarty的问题

代码如下:

// index.js:
const express = require('express');
const smarty4Js = require('smarty4Js');
const path = require('path');
const app = express();
const smartyHelper = new smarty4Js();
const basePath = path.resolve('./');
smartyHelper.setBasedir(basePath);
const compiler = smartyHelper.compile('./index.tpl');
const html = compiler.render({
  title: 'node-parse-smarty',
  body: 'Smarty'
});
console.log(html);
app.get('/', (req, res) => {
  res.header('text/html');
  res.end(html);
});

app.listen(3000, () => {
  console.log('app is run at 3000 port');
});
// index.tpl:
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
     content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>{%$title%}</title>
</head>
<body>
<div id="footer">{%$body%}</div>
</body>
</html>

结果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • node express使用HTML模板的方法示例

    前言 一般我们在做node web项目的时候,想使用我们平时常用的html模板,express默认使用jade模板,本身是没有HTML的,那么如何实现呢? ejs模板配置 使用 var app = express(); app.set('views', path.join(__dirname, 'views')); //设置视图引擎 app.set('view engine', 'ejs'); html模板配置 安装ejs npm install ejs -D 引入 var ejs = requ

  • 新版vue-cli模板下本地开发环境使用node服务器跨域的方法

    背景 我们都知道浏览器有一个既核心也最基本的安全功能,即同源策略.同源分别是:协议,域名,端口.如果浏览器访问服务器不同源的话,就会访问不到数据.那开发中常常访问的服务器不同源,那么可以借助一个服务器当做中介来访问需要访问的服务器从而获得数据.因为同源策略是浏览器的安全机制,而服务器之间是不受此限制的.之前vue-cli模板build文件夹下有dev-serve.js文件,可以在此文件中配置本地node服务器实现跨域,现在的模板下没有此文件,那我们该如何使用node跨域呢?不逼逼,上方法. 具体

  • Node.js 使用jade模板引擎的示例

    在"Node.js开发入门--Express安装与使用"里,我们曾经使用express generator创建了一个HelloExpress网站,express工具为我们生成了基本的目录结构.模板.stylesheet.routers等.虽然那只是一个简单的HelloWorld类的小东西,可里面包含的内容还是有些多了,为了更好的理解Express所支持的jade模板引擎的用法,我们这次提供一个手动创建的小网站,可以显示来访者的IP,并对访问进行计数. 安装jade npm instal

  • Node.js的Web模板引擎ejs的入门使用教程

    Node 开源模板的选择很多,但推荐像我这样的老人去用 EJS,有 Classic ASP/PHP/JSP 的经验用起 EJS 来的确可以很自然,也就是说,你能够在 <%...%> 块中安排 JavaScript 代码,利用最传统的方式 <%=输出变量%>(另外 <%-输出变量是不会对 & 等符号进行转义的).安装 EJS 命令如下: npm install ejs JS 调用 JS 调用的方法主要有两个: ejs.compile(str, options); //

  • node.js 使用ejs模板引擎时后缀换成.html

    这是一个小技巧,看着.ejs的后缀总觉得不爽,使用如下方法,可以将模板文件的后缀换成我们习惯的.html. 1.在app.js的头上定义ejs: 复制代码 代码如下: var ejs = require('ejs'); 2.注册html模板引擎: 复制代码 代码如下: app.engine('html',ejs.__express); 3.将模板引擎换成html: 复制代码 代码如下: app.set('view engine', 'html'); 4.修改模板文件的后缀为.html. 好了,任

  • 在node环境下parse Smarty模板的使用示例代码

    因为某种原因,我们的项目必须采用smarty模板,一直没找到好用的npm包 不得已扒开了fis3-smarty, gulp-smarty的代码,找到了一个npm包 smarty4Js 然后解决了node环境渲染smarty的问题 代码如下: // index.js: const express = require('express'); const smarty4Js = require('smarty4Js'); const path = require('path'); const app

  • node中短信api实现验证码登录的示例代码

    1. node服务器搭建+数据库的连接 此处操作比较简洁易懂,可参考:node服务器快速搭建 2. 短信api的使用 对于短信api ,此处以 阿里云的短信服务为例(只要是有短信服务的平台皆可使用) 2.1 登录平台进行参数配置 1. 进入短信控制台,对要发送的短信格式进行配置,如果没有签名,需要申请签名后操作 2. 点击查看 API Demo 进入配置生成的api:此时选择 Node.js 2.2 根据生成的api 在项目中使用 代码注释详尽 const Core = require('@al

  • Node.js实现爬取网站图片的示例代码

    目录 涉及知识点 cheerio简介 什么是cheerio ? 安装cheerio 准备工作 核心代码 示例截图 涉及知识点 开发一个小爬虫,涉及的知识点如下所示: https模块,主要是用户获取网络资源,如:网页源码,图片资源等. cheerio模块,主要用于解析html源码,并可访问,查找html节点内容. fs模块,主要用于文件的读写操作,如保存图片,日志等. 闭包,主要是对于异步操作,对象的隔离保护. cheerio简介 什么是cheerio ? cheerio是为服务器特别定制的,快速

  • jsp实现上一页下一页翻页功能(示例代码)

    前段时间一直忙于期末考试和找实习,好久没写博客了. 这段时间做了个小项目,包含了翻页和富文本编辑器Ueditor的两个知识点,Ueditor玩的还不是很深,打算玩深后再写篇博客. 要实现翻页功能,只需要设置一个pageIndex即可,然后每次加载页面时通过pageIndex去加载数据就行. 那么我们可以设置一个隐藏的input框,用于传递pageIndex给下个页面. 当我们点击上一页的时候,通过js方法改变pageIndex的值,再提交表单即可 二话不多说,看代码,代码里面写的还算比较清楚.

  • pyqt5 实现 下拉菜单 + 打开文件的示例代码

    如下所示: # -*- coding: utf-8 -*- import sys import os from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtCore import QRect, QSize, QMetaObject, QCoreApplication,\ QPropertyAnimation from PyQt5.QtGui import

  • php之Smarty模板使用方法示例详解

    本文详细剖析了smarty模板的使用方法,对于学习smarty的朋友有一定的参考价值.详情如下: 一.模板中的注释 每一个Smarty模板文件,都是通过Web前台语言(xhtml,css和javascript等)结合Smarty引擎的语法开发的. 用到的web前台开发的语言和原来的完全一样,注释也没有变化. Smarty注释语法是'左结束符变量值*'和'*右结束符变量值',在这两个定界符之间的内容都是注释内容,可以包含一行或多行,并且用户浏览网页查看原代码时不会看到注释,它只是模板内在的注释,以

  • smarty模板数学运算示例

    本文实例讲述了smarty模板数学运算用法.分享给大家供大家参考,具体如下: {* $height=4, $width=5 *} {math equation="x + y" x=$height y=$width} 输出: 9 {* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *} {math equation="height * width / division" h

  • 基于node下的http小爬虫的示例代码

    每时每刻不管你睡了还是没睡,互联网都会有海量的数据来来往往,有客服端到服务端,有服务端到服务端.http的get和request完成的角色即为数据的获取及提交,接下来我们动手写一个简单的小爬虫来爬爬菜鸟教程中关于node的章节的课程界面. 爬取Node.js 教程首页的所有数据 建立node-http.js,其中代码如下,代码中有详细的的注释,自行理解了哈 var http=require('http');//获取http模块 var url='http://www.runoob.com/nod

  • docker环境下数据库的备份(postgresql, mysql) 实例代码

    posgresql 备份/恢复 1.备份 DATE=`date +%Y%m%d-%H%M` BACK_DATA=xxapp-data-${DATE}.out # 这里设置备份文件的名字, 加入日期是为了防止重复 docker exec pg-db pg_dumpall -U postgres > ${BACK_DATA} # pg-db 是数据库的 docker 名称 2.恢复 docker cp ${BACK_DATA} pg-db:/tmp docker exec pg-db psql -U

  • KindEditor在php环境下上传图片功能集成的方法示例

    KindEditor 是一套开源的在线HTML编辑器, 后台可与 Java..NET.PHP.ASP 等程序集成.为实现图文混排的编辑效果,我们通常都会用到编辑器的图片上传功能,本文会简单讲一下KinEditor的基本使用,主要说明如何在php环境下,集成编辑器的图片上传功能! KindEditor 官方下载:http://kindeditor.net/down.php KindEditor 编辑器的基本使用:http://kindeditor.net/docs/usage.html KindE

随机推荐