Articles of 胡子

节点js和小胡子

我正在尝试学习nodejs。 我想使用mustache和nodejs服务一个静态html文件。 我用这个代码创build一个启动服务器的模块: var http = require("http"); function startServer(){ function onRequest(request,response){ console.log("Request received"); response.writeHead(200, {"Content-type" : "text/html" }); response.write("hello"); response.end(); } console.log("The server is running at http://localhost:8888"); http.createServer(onRequest).listen(8888); } exports.startServer = startServer; 然后我在indexjs文件中这样做: var server = require("./server"); var util = require("util"); var fs= require("fs"); var mu = require("mu2"); function renderIndex(){ var streamIndex = mu.compileAndRender('index.html',{"name" : […]

展开variables中的标签

有没有办法让胡须扩大variables内的标签? 我明白这是部分的目的。 但是,正如您在下面的示例中所看到的,由于视图的结构,使用偏分组有时不切实际。 如果不是,我应该如何改变下面的视图的结构? 目前我提前提交每个条目的html属性。 这似乎并不理想(并打破了改变胡须的分隔符的function)。 例 博客主页的视图: var view = { title: 'Example blog', entries: [ {url: '/a', html: '<p>The first entry on {{title}}</p>'}, {url: '/b', html: '<p>The second entry on {{title}}</p>'}, {url: '/c', html: '<p>The third entry on {{title}}</p>'} ] }; 相应的模板: {{#entries}} {{{html}}} {{/entries}} 在调用Mustache.render ,我收到了这个。 <p>The first entry on {{title}}</p> <p>The […]

在使用胡子时模拟Jade的“布局”function

我设置节点并快速地按照本页上的说明集成了mustache.js模板: http://bitdrift.com/post/2376383378/using-mustache-templates-in-express 到目前为止,除了我在尝试设置mustache.js具有与Jade的“布局”相同的function方面遇到了很多麻烦之外。 我基本上试图设置1个主文件作为我的其他页面的shell类似于用Django扩展模板。 防爆。 布局文件可以有这样的: [HTML] [标题]我的标题[/标题] [正文] {{内容}} [/体] [/ HTML] {{content}}被replace为一个文件的内容,我将在该页面的路由中以某种方式指定。 我只是不知道如何设置这个expression,因为我仍然是一个巨大的新手,它的设置与翡翠的方式是自动的,这似乎是特定于翡翠只。 使用Jade,你只需要制作一个“layout.jade”文件,并将其作为你的路线: app.get('/', function(req, res) { res.render('home', { title: 'My home page' }); }); 然后神奇地将home.jade的内容添加到您指定body!= body标签的layout.jade文件中。 所以是的,我怎么能用胡子来做这样的事呢? 如果你知道答案,请一步一步解释。

小胡子将空行渲染为空格

我有一个简单的文本文件,由node_mailer的mustache进行parsing,例如: This is a simple text file. It has pretty standard new lines. 但是新的行被渲染为像这样的空间: This is a simple text file. It has pretty standard new lines. 任何想法是什么造成这个? 这是胡须常见的问题吗?

hogan.js +玉?

我想使用hogan.js,但是我现在把所有的html写成了jade。 我怎么能build立一个工作stream程,使我能够用玉来编写模板,但仍然使用hogan进行编译? 谢谢你的帮助!

使用mustache.js部分快递

所以这可能是我完全误解function的一个例子,但是我正在尝试在node.js中使用partials,以便在类似于{% extends 'something.html' %}各种模板上有一个可重复使用的可重新插入的页眉和页脚。在Django或<? includes 'something.php ?> 在php中<? includes 'something.php ?> 。 据我所知,这是部分是为了什么。 所以在我的app.js使用这个configuration来呈现模板: var mustache = require('mustache'); var template = { compile: function (source, options) { if (typeof source == 'string') { return function(options) { options.locals = options.locals || {}; options.partials = options.partials || {}; if (options.body) // for express.js > v1.0 locals.body = […]

其中的JavaScript模板引擎嵌套适合生成JSON

小胡子和把手都很棒。 我喜欢他们为他们的个人简单和卓越。 小胡子,因为它是一个单一的模板在很多地方和把手,因为它只提供了更多的function。 我面临的挑战是他们似乎已经实现了输出HTML或其他文档结构的标签是成对的,没有分隔符。 为了进一步澄清,如果你有一个项目的数组将会在列表中输出,那么这个效果很好: <ul> {{#each items}} <li>{{name}}</li> {{/each}} </ul> 这很好。 但是如果你想输出类似JSON的东西: [ {{#each items}} { name:{{name}} } {{/each}} ] 这不起作用,因为JSON需要逗号分隔列表中的项目。 而且你不能在最里面的'}'后面加一个逗号,因为这也会导致错误。 有几个post/build议,人们已经要求将可选的分隔符属性添加到#each或添加#join。 一位提交者表示,它应该作为一个插件来实现,因为核心需要简单。 抛开政治。 能够将JavaScript对象格式化为JSONstring似乎非常适合模板。 **最后一个想法。 实际上可能有更好的JavaScript成语来重新格式化一个JavaScript对象。 我想这也是有趣的考虑。 PS:我喜欢这个模板的原因之一是因为它变成了自我logging。 更新: @Kevin在handlebarsjs团队能够创build一个“助手”function,实现了我失踪的function。 这不是很快,但它代码的工作: [ {{#join items sep=','}} { name:{{name}} } {{/join}} ]

为什么我在Mustache中获取模板文件名而不是模板内容

我经历了胡须教程 这个问题与embedded胡须模板到另一个模板有一点相关 除了偏分之外,我还有其他所有的工作 我试图做 base.mustache: {{testVar}} <h2>Names</h2> {{#names}} {{> user}} {{/names}} user.mustache: <strong>{{name}}</strong> 但不是呈现用户模板或它的内容,即名称的价值,它呈现Names c:\blahFolder\user.mustache 我使用hogan-template-compiler来预编译我的模板。 你能弄清楚为什么从上面的信息发生,或者你需要更多的信息? 我假设,我的编译器代码是好的,因为我得到正确呈现testVar值。 如果你真的需要看,这是我的hoganCompiler.js var partialsDir = __dirname + '/views/partials' , jsDir = __dirname + '/public/js/compiled'; var hogan = require('hogan.js') , path = require('path') , join = path.join , fs = require('fs') , onModify , relations = {} , watch; […]

代码上的Javascript小胡子无效模板

我正在申请一个应用程序,我已经通过npm安装胡子。 然后在我的main.js文件中,我像这样导入它: const Mustache = require('mustache') 然后我有一个这样的HTML模板文件: 在html文件的tile部分中的<title>{{ title }}</title> 。 使用节点我已经加载了模板文件,并尝试运行渲染。 代码如下: fs.readFile('template.html', (err, data) => { var mydata = Mustache.render(data, {title: "sometitle"}); fs.writeFile('result.html', mydata, (err) => { if (err) throw err; console.log('The file has been saved!'); }); }); 我不断收到这个错误: TypeError:无效的模板! 模板应该是一个“string”,但“对象”作为胡子#渲染的第一个参数 我怎样才能解决这个问题,我可以改变并保存结果?

如何整合CouchApp,Node.JS,Sammy和Moustache

我设置了一个node.couchapp.js CouchApp并将其推送到我的CouchDB。 Sammy和jQuery默认包含在内。 现在,我想为模板添加胡子,但不知道在哪里? 我可以使用它作为Node.js模块或jQuery插件。 我从一些示例代码开始,只是为了看看它是否有效,但不是: ddoc.lists = { "basic": "function (head, req) { var that = this; provides('html', function () { var to_html = require('modules/mustache').to_html; var members = []; var row; while (row = getRow()) { members.push({club: row.key[0], name: row.key[1]}); } return to_html(that.templates['roster.mustache'], { members: members }); }) }" }; 结果是: {"error":"invalid_require_path","reason":"Object has no […]