Tag: handlebars.js

在数组中循环时,手柄上的mathexpression式

我正在练习节点,我遇到了一个小问题。 我使用句柄作为模板引擎,mongoose与我的数据库进行交互。 在我的.hbs模板中,我循环遍历数据库中的每条logging,当然,我将logging传递给了我的视图 router.get('/', function(req, res, next) { Exam.find(function(err, predmeti) { if (err) { console.log(err); } res.render('index',{ predmeti: predmeti }) }) }); 现在,当我使用#each遍历predmeti时,引擎会在尝试执行mathexpression式时抛出一个错误 {{#each predmeti}} <h1>{{100/(brKolokvijuma/finished)}}</h1> {{/each}} brKolokvijuma and finished都有一个数值,但由于某种原因,我得到一个错误期待ID得到OPEN_SEXPR 所以我假设handlebars不会让我做mathexpression式,当我通过数组循环。 我该如何解决这个问题?

由于MIMEtypes不匹配,资源被阻止

The resource from “[URL and name of file]” was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff). 为我所有的CSS和JavaScript文件。 我目前的设置是使用Express和Express-Handlebars进行路由和模板的node.js服务器。 我确定这个问题是由我的路由文件,这将有处理像/movies/:id或/search/query:路线的请求。 我有点解决了这个问题,在我的main.hbs文件(默认主模板)中创build了两个链接到CSS和Javascript文件,其中一个链接是/ ,另一个是/something/something 。 我知道可怕的做法。 但直到现在,它的工作。 但是这就是为什么我一劳永逸求解MIMEtypes不匹配错误的原因。 因为当我将其上传到我的数字海洋服务器时,它根本不起作用。 我不知道如何解决这个问题。 我的文件结构如下: / views/ css/ js/ layouts/ main.hbs index.js 在index.js中,我有代码来设置句柄和一些代码pipe理CSS和JavaScript文件。 app.engine('.hbs', exphbs({ defaultLayout: 'main', extname: '.hbs', layoutDir: path.join(__dirname, 'views/layouts') })); app.set('view engine', '.hbs'); app.set('views', path.join(__dirname, 'views')); app.use(express.static(__dirname + […]

将包含文件传递到Handlebars布局

我正在使用Node.js,Express 4和Handlebars模板处理器。 我使用Handlebars渲染的一些页面视图有几个千字节的静态内联SVG代码。 有没有简单的干净的方法把SVG代码放到一个单独的文件中,以包含在Handlebars布局模板中? 理想情况下,这个包含文件的扩展名是.svg,但是.hbs是可以接受的。

如何使用gulp-handlebars来缩小手柄模板

我有以下的车把结构: ├── gulpfile.js └── source/ └── templates/ ├── view1/ │ └── template11.handlebars └── view2/ └── template21.handlebars 得到这个: └── target/ └── js/ ├── view1.min.js └── view2.min.js 问题是如何创build实际缩小的预编译模板。 现在我只是得到开放的预编译的JS。 我的gruntfile.js是: const pump = require( 'pump' ) const rename = require( 'gulp-rename' ) const handlebars = require( 'gulp-handlebars' ) gulp.task( 'build-templates', ( done ) => { const views […]

把手不认识助手

我发现这个帮手在线,检查variables是否等于某个string。 我试图添加这个帮手到我的index.hbs文件,但我得到以下错误:缺less帮手:“if_eq” 有人能告诉我如何解决这个问题吗? 我在官方的Handlebars文档中做了他们要求我做的事情,所以我不明白。 我使用NodeJS / Express,但require('handlebars')或require('express-handlebars') ,因为这是express-generator为我生成的。 index.hbs: <script> Handlebars.registerHelper('if_eq', function(a, b, opts) { if(a == b) return opts.fn(this); else return opts.inverse(this); }); </script> {{#each tasks}} {{#if_eq status 'unfinished'}} [do something] {{else}} [do something else] {{/if_eq}} {{/each}}

比较句柄帮助器

我在代码中使用块助手来比较值的工作,但每次我运行这个代码的问题,我得到这个错误按摩在我的网页视图 Error: Missing helper: "compare" at Object.<anonymous> (/opt/lampp/htdocs/x/chessMult/regtest/using-passport-with-sequelize-and-mysql-master/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js:19:13) at Object.eval (eval at createFunctionContext (/opt/lampp/htdocs/x/chessMult/regtest/using-passport-with-sequelize-and-mysql-master/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js:254:23), <anonymous>:8:91) at main (/opt/lampp/htdocs/x/chessMult/regtest/using-passport-with-sequelize-and-mysql-master/node_modules/handlebars/dist/cjs/handlebars/runtime.js:175:32) at ret (/opt/lampp/htdocs/x/chessMult/regtest/using-passport-with-sequelize-and-mysql-master/node_modules/handlebars/dist/cjs/handlebars/runtime.js:178:12) at ret (/opt/lampp/htdocs/x/chessMult/regtest/using-passport-with-sequelize-and-mysql-master/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js:525:21) at ExpressHandlebars._renderTemplate (/opt/lampp/htdocs/x/chessMult/regtest/using-passport-with-sequelize-and-mysql-master/node_modules/express-handlebars/lib/express-handlebars.js:247:12) at ExpressHandlebars.<anonymous> (/opt/lampp/htdocs/x/chessMult/regtest/using-passport-with-sequelize-and-mysql-master/node_modules/express-handlebars/lib/express-handlebars.js:173:21) 我的index.hbs文件 {{#compare pageCount ">" 1 }} <ul class="pagination"></ul> {{#compare currentPage ">" 1 }} <li><a href="/?page=1"> &laquo;</a></li> {{/compare}} {{/compare}} 我的auth.js文件 res.render('index', {x:"1888", "personList": personList,data: data, pageSize: […]

在Node JS / Express Web应用程序中生成PDF报告

我是一个新手,试图使用NodeJS / Express和Handlebars来构build一个Web应用程序来满足模板需求。 应用程序的一部分处理为销售生成发票。 我已经写了一个句柄模板以及一些JavaScript代码来处理添加/删除项目和计算总数等工作正常。 需要在包含添加在客户端的dynamic内容的NodeJS服务器上生成此发票的PDF格式。 我不确定如何着手实施。 我已经评估了客户端PDF生成选项,但这不是我的使用情况。 你可以让我知道,如果有可能在服务器端生成PDF,当客户端的HTML页面中有dynamic元素? 该应用程序类似于这个链接: http : //www.smarttutorials.net/invoice-system-using-jquery-autocomplete/ 代码的dynamic部分如下: //添加额外的表格行 var i=$('table tr').length; $(".addmore").on('click',function(){ html = '<tr>'; html += '<td><input class="case" type="checkbox"/></td>'; html += '<td><input type="text" data-type="productCode" name="itemNo[]" id="itemNo_'+i+'" class="form-control autocomplete_txt" autocomplete="off"></td>'; html += '<td><input type="text" data-type="productName" name="itemName[]" id="itemName_'+i+'" class="form-control autocomplete_txt" autocomplete="off"></td>'; html += '<td><input type="text" name="price[]" id="price_'+i+'" class="form-control changesNo" […]

指向部分生成器网站

我使用快速生成器生成快速网站,我需要引用视图文件夹内子文件夹内的部分hbs文件。 我的文件夹结构是这样的 从我的主布局文件(layout.hbs)我引用head和nav_bar文件,我得到一个错误,头文件不能find 错误是 C:\MovementForNewNigeria\app\views\index.hbs: The partial head could not be found Error: C:\MovementForNewNigeria\app\views\index.hbs: The partial head could not be found at Object.invokePartial (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\runtime.js:266:11) at Object.invokePartialWrapper [as invokePartial] (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\runtime.js:68:39) at Object.eval (eval at createFunctionContext (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\compiler\javascript-compiler.js:254:23), <anonymous>:6:28) at main (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\runtime.js:173:32) at ret (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\runtime.js:176:12) at ret (C:\MovementForNewNigeria\app\node_modules\handlebars\dist\cjs\handlebars\compiler\compiler.js:525:21) at C:\MovementForNewNigeria\app\node_modules\hbs\lib\hbs.js:87:17 at C:\MovementForNewNigeria\app\node_modules\hbs\lib\hbs.js:69:11 at done (C:\MovementForNewNigeria\app\node_modules\hbs\lib\async.js:74:20) at C:\MovementForNewNigeria\app\node_modules\hbs\lib\hbs.js:64:20

传递一个variables到每个响应在车把上

我正在使用nodeJS快车和句柄 有没有办法将相同的variables传递给每个快速路线? 我必须将isAuthenticatedvariables传递给每个前端才能呈现略有不同的视图。 我希望能够在快递中间件中传递一个variables,以便在每个页面中呈现它。 (如果有更好的方法,不一定要通过中间件) 有没有办法做到这一点?

NodeJS – 在渲染之前将数据库查询的结果发送到视图或路由

我正在使用Express JS,Socket IO和Handlebars与NodeJS做一个web应用程序,但我对这些技术很新颖。 我努力find一种方法来将查询结果传递给我的菜单(部分),主要是因为节点是asynchronous的,所以当我的查询返回结果时,页面已经呈现,通过。 main.handlebars(主版面): (…) {{> menu}} (…) {{{body}}} router.js var express = require('express'); var router = express.Router(); var index_controller = require('../controllers/index_Controller'); router.get('/', index_controller.index); module.exports = router; index_controller.js exports.index = function(req, res) { res.render('main_page_html'); }; 这个菜单会出现在每个页面上,我想在这个菜单中显示来自在线人员的名字,这是查询的结果。 我试图把路由function中的查询代码,它的工作原理,但我将不得不复制相同的代码到我有每一个路由,因为如我所说,这个菜单出现在所有的。 如果我尝试在路由function之外执行某个function,则asynchronous会启动,并且没有数据发送到该页面。 这绝对是一个更好的解决scheme。 ps:通过套接字发送我的数据到客户端是一种方式,但我想做的事情是服务器端。 -解- 我按照Tolsee的说法创build了一个中间件,所以现在我可以在需要的每个path中调用这个中间件。 这就是我所做的: menu.js exports.onlineUsers = function (req, res, next) { // database query […]