我想在节点中使用mustache.js将模板与数据分开...如果可能的话,使用fs.readFile并不明显。有什么想法?
我使用data.js作为数组模型,使用helloworld.html作为模板
var mustache = require('mustache');
var fs = require('fs');
var http = require('http');
http.createServer(function (req, res) {
console.log('request recieved at ' + (new Date()).getTime());
fs.readFile('./data.js', encoding='utf8',function(err, data) {
model2 = data;
console.log(model2); //logs the data.js as expected
});
fs.readFile('./helloworld.html', function(err, template) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(mustache.to_html(template.toString(),model2)); //model2 is not being passed in
});
}).listen(8081);
答案 0 :(得分:0)
您可以尝试使用jinjs。它是Jinja的一个端口,是一个非常好的Python模板系统。你可以用这样的npm安装它:
npm install jinjs
在template.tpl中:
I say : "{{ sentence }}"
你的template.js中的:
jinjs = require('jinjs');
jinjs.registerExtension('.tpl');
tpl = require('./template');
str = tpl.render ({sentence : 'Hello, World!'});
console.log(str);
输出将是:
I say : "Hello, World!"