如何在node.js服务中使用Freemarker语法,替换sql中的占位符

        今天碰到了一个问题,项目中需要使用报表查询后的数据,但是如果在node服务中再书写一遍sql,不仅阅读性差,而且后期维护起来比较困难。

        而我们报表中的sql大多使用了Freemarker的占位符,所以就在思考如何能在node服务中使用Freemarker的语法。

        所以在查询资料后,发现了freemarker.js这个依赖。是由org组织,免费开源的一个组件,现在整理了一下,它的简单入门。

     

const Freemarker = require('freemarker.js');
const path = require('path');

exports.sendFreemarker = async (ctx) => {
    // 创建 Freemarker 实例,并传入配置参数
    const fm = new Freemarker({
        // viewRoot: 所代表的是模板文件的根目录,可以是相对路径,也可以是绝对路径,因为我的模板文件在当前目录,所以这里可以不用写绝对路径,
        viewRoot: path.join(__dirname),
    });

// 定义模板文件和数据对象
// 这个位置是你的模板对象
    const tpl = 'template.ftl';
// 这里是你想替换的占位符内容    
const dataObject = {
        planName: '',
        selectMonth: '',
        selectWeek: ''
    };

// 使用 render 方法渲染模板
    fm.render(tpl, dataObject, function(err, html, output) {
        if (err) {
            console.error('Failed to render template:', err);
            return;
        }
// 最终输出的sql结果为html
        console.log('Rendered HTML:', html);
        // 可选:处理渲染结果
    });
}

   

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值