Freemarker.js获取方法详解,如何高效实现模板渲染?
- 虚拟主机
- 2026-01-14
- 6
Freemarker.js 是一个基于 Node.js 的模板引擎,用于动态生成 HTML 页面,在使用 Freemarker.js 时,我们经常需要从外部获取数据,以便在模板中展示,以下是一些获取数据的方法和示例。

数据获取方式
| 方法 | 描述 | 示例 |
|---|---|---|
| 本地文件 | 从本地文件读取数据 | fs.readFile('data.json', 'utf8', (err, data) => { ... }); |
| 远程文件 | 从远程服务器读取数据 | axios.get('https://api.example.com/data').then(response => { ... }); |
| 数据库 | 从数据库查询数据 | mongoose.connect('mongodb://localhost:27017/mydb', { useNewUrlParser: true, useUnifiedTopology: true }); const Data = mongoose.model('Data', new Schema({ name: String, age: Number })); Data.find({}, (err, data) => { ... }); |
| 环境变量 | 从环境变量获取数据 | const data = process.env.MY_DATA; |
示例
以下是一个简单的示例,展示如何从本地文件和远程文件获取数据,并使用 Freemarker.js 渲染模板。
const Freemarker = require('freemarker.js'); const fs = require('fs'); const axios = require('axios'); // 加载模板 const template = fs.readFileSync('template.html', 'utf8'); // 从本地文件获取数据 const localData = JSON.parse(fs.readFileSync('data.json', 'utf8')); // 从远程文件获取数据 axios.get('https://api.example.com/data').then(response => { const remoteData = response.data; // 渲染模板 const html = Freemarker.render(template, { localData, remoteData }); // 输出结果 console.log(html); });
FAQs
Q1:Freemarker.js 支持哪些模板语法?

A1:Freemarker.js 支持类似 Mustache 的模板语法,包括变量、条件、循环等。

Q2:Freemarker.js 与其他模板引擎相比有哪些优势?
A2:Freemarker.js 与其他模板引擎相比,具有以下优势:
- 基于 Node.js,易于集成;
- 支持多种数据源,如本地文件、远程文件、数据库等;
- 丰富的模板语法,满足各种需求。
国内文献权威来源
- 《JavaScript权威指南》
- 《Node.js深度剖析》