Tag: handlebars.js

Nodejs Handlebars如何运行serverside javascript

我正在尝试在Nodejs上使用Handlebars。 我可以执行简单的变种,但是如果我想要执行JavaScript代码来输出一些值呢? 在PHP中,我们将这样做: <div>This is formatted date : &lt;?php echo date($oldDate); ?&gt; </div> nodejs句柄中的示例: <div>This is non formatted date: {{olddate}}</div> <div>This is formatted date : {{ date(olddate)}}</div> 我知道在EJS模板引擎中,我们可以通过把<%这样的内容做到这一点 <div>This is formatted date : <% date(olddate)%></div> 谢谢您的回答

断开连接时销毁socket.io连接

我遇到了一个问题,用户从socket.io断开,实例保持活动,包括所有的事件监听器。 以下两个示例都是由于数百行而导致的进度的部分代码。 但是这个问题依然存在。 app.js例子: var express = require('express'), app = express(), routes = require('./routes/index'), server = require('http').createServer(app); io = require('socket.io').listen(server); app.engine('handlebars', exphbs({ defaultLayout: 'main' })); app.set('view engine', 'handlebars'); app.use('/', routes); server.listen(3000, function() { console.log('listening on *:3000'); }); module.exports = app; index.js路由示例: var express = require('express'), router = express.Router(); router.get('/', function(req, res) { res.render('home', { title: […]

Express.JSpath问题与句柄

事情是。 “应用程序”文件夹是我的节点的逻辑坐落在那里,你可以find视图文件夹,模板的句柄(快速句柄)。 在“config”文件夹中,有一个express.js文件,其中实际需要express软件包,并且还设置了app引擎和variables: line 1: app.engine('handlebars', handlebars.engine); line 2: app.set('views', path.join(__dirname, '../app/views'); line 3: app.set('view engine', 'handlebars'); server.js文件需要config文件夹中的express.js文件,就是这样。 如果我把“views”文件夹放在根目录(第二行除外),一切正常,但是,如果我使用第2行和图片中显示的文件夹结构,我总是得到一个错误ENOENT:“没有这样的文件或目录..“ 尝试通知“views”文件夹的正确path时,尝试在第2行上使用什么格式并不重要,错误消息始终表示无法find文件,显示的URL总是忽略“app”文件夹(它显示我尝试的每个path,但它使应用程序部分消失)。 不pipe我做什么,但节点似乎只是忽略该应用程序文件夹..就好像我无法访问它。 Ex: 1) path.join(__dirname, "../app/views"); > ENOENT "C:\root\views\layouts\main.handlebars". 2) path.join(__dirname, "../xapp/views"); > Failed lookup view "C:\root\xapp\views" Note how the "app" portion of the first option disapears from the url !! 我假设这是一个“path”问题,我不明白是怎么回事。 有人可以帮我解决吗? 如果有人知道我在哪里可以读到关于这个“path事件”背后的逻辑,我会很感激。 例如:当我只使用“__dirname”在第2行,我得到的错误消息是节点“无法查看视图”文件名“在视图目录:”path_string /configuration“…这是我很难解释(我是个新手),但是我认为你们比我更有经验,可以理解我在说什么。 […]

无法使用OS X 10.11.4,Node.js获取res.render。 Express3车把

我对这一切都很陌生。 我已经通过几个不同的教程,将相同的结果。 我觉得有些东西与设置不兼容,或者我发了一些东西。 以下是我相信是相关的文件。 我可以让res.send工作,但res.render不会渲染。 我甚至不能把它扔出500或404错误。 它似乎findhttp:// localhost:3000 ,虽然没有文字显示。 我正在使用OS X 10.11.4,Node.js. Express3车把。 directory: /Users/williamshaw/WebProjects/sicmobile Williams-MacBook:sicmobile williamshaw$ ls package.json resources sicmobile.js views bin node_modules public routes vendors sicmobile.js: var path = require('path'); var express = require('express'); // set up handlebars view engine var exphbs = require('express3-handlebars'); var app = express(); app.set('views', path.join(__dirname, '/views')); app.engine('handlebars', exphbs({defaultLayout: […]

如何将数据从express传递到我的hbs视图

var Ticket = require('./models/ticket.js'); module.exports = function (app) { app.get('/',function (req, res) { Ticket.find({},function (err, tickets) { if(err) { res.send(err) } else { console.log(tickets); res.render('index',tickets); } }); }); app.get('/upload',function (req, res) { res.render('upload'); }); app.post('/upload',function (req, res) { var ticket = new Ticket(); ticket.type = req.body.type; ticket.price = req.body.price; ticket.time = req.body.time; ticket.date = req.body.date; […]

Nodejs +把手 – 拉当前的URLpath并传递给助手

我正在尝试创build一个meta标签句柄助手抓取urlpath名,并使用该值的switch语句,然后将string返回到我的元标记在HTML头,但我不知道当前抓取url的最佳途径我的switch语句的path。 我试过window.location.pathname ,但得到一个错误,没有定义window 。 我知道path模块需要你传递一些东西来parsing出来,但是我不确定最好的值是什么。 谁能帮我? 这是我的手柄帮手文件: var path = require('path'); var metaHelpers = function(hbs) { hbs.registerHelper('metaTitle', function(){ var urlPath = path.dirname(); console.log(urlPath); switch(urlPath) { case "/": { return 'Index Test' } break; case "/login": { return 'Login Test' } break; default: { return 'No Meta Tag' } } }); }; module.exports = metaHelpers;

把手:第一次运行时未发现部分问题

我有一个节点脚本来编译使用句柄模板。 这是我的模板: <div class="header"> <h1>{{title}}</h1> </div> <div class="body"> <p>{{body}}</p> </div> <div class="footer"> <div><a href="http://twitter.com/{{author.twitter}}">{{autor.name}}</a> </div> <ul> {{#each tags}} <li>{{this}}</li> {{/each}} </ul> {{> example_partial}} </div> 相应的部分是 <div> <p> Hi, I am a partial! </p> </div> 和JS var handlebars = require('handlebars'), fs = require('fs'); var data = { title: 'practical node.js', author: '@azat_co', tags: ['express', 'node', 'javascript'] […]

JSON不使用Panini加载

我正在使用Zurb基金会的电子邮件 ,我正在创build一个非常简单的多语言电子邮件导出系统,我有这个data/lang.json : { "en": { "hello": "hello", "welcome": "Welcome to my website" }, "fr": { "hello": "Bonjour", "other": "Bienvenue sur mon site web" } } ..并根据<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">的lang属性 我需要从JSON中使用相应的对象。 Zurb使用Panini和把手,所以我正在做这个开始: {{lang.en.hello}} ..但没有显示在网页上。 我究竟做错了什么?

手柄select框填充

我的HTML代码, 我希望在每个用户名的select框旁边select每个用户angular色, 在angular色的每个循环内我不能够访问父用户节点的angular色,是否有可能比较用户节点的angular色ID与angular色节点angular色ID,当它相等时,选项将被选中 <table> <tr> <p>peter is employee</p> <p>john is admin</p> <p>michel is manager</p> </tr> {{#user}} <tr> <td> <input type="text" value="{{name}}"> </td> <td> <select> {{#each ../roles}} <option value="{{roleid}}">{{value}}</option> {{/each}} </select> </td> </tr> {{/user}} 这可能是Json var data = { "user": [ { "name": "peter", "role": 1 }, { "name": "john", "role": 2 }, { "name": "michel", […]

是可以传递一个帮手作为参数的句柄部分?

假设我有一个帮助器返回一个数据对象。 我想将这个数据对象传递给这样一个部分: {{> somePartial data=someHelper}} 是这样的可能吗? 我应该提到的是在使用express-handlebars包的Node中。