在节点中使用 Mustache.js 将数据与视图分离

发布于 2024-11-25 01:49:47 字数 721 浏览 2 评论 0原文

我想在节点中使用 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);

I would like to separate the template from the data using mustache.js in node... It is not obvious using fs.readFile if this is possible. Any Thoughts?

I'm using data.js as the array model and helloworld.html as the template

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);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

扎心 2024-12-02 01:49:47

您可以尝试使用 jinjs。它是 Jinja 的一个端口,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!"

You could try using jinjs. It is a port of the Jinja, a very good Python templating system. You can install it with npm like this :

npm install jinjs

in template.tpl :

I say : "{{ sentence }}"

in your template.js :

jinjs = require('jinjs');
jinjs.registerExtension('.tpl');
tpl = require('./template');
str = tpl.render ({sentence : 'Hello, World!'});
console.log(str);

The output will be :

I say : "Hello, World!"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文