问题标签 [express-handlebars]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
334 浏览

node.js - 如何在 Firebase 上使用带有把手模板引擎的节点 js 托管我的 Web 应用程序

有没有办法在firebase上使用nodejs和handlebars托管网络应用程序。在文档中我找不到相关的东西。此外,当我尝试进行托管时,它说公共目录中必须是 index.html,但在我的应用程序中,只有把手里面没有 html。感谢您的帮助,并对语言错误感到抱歉。

0 投票
1 回答
4708 浏览

node.js - NodeJS Express App - Showing flash messages via Handlebars

I'm hoping someone can help with showing flash messages in Express via a Handlebars view (which uses the bootstrap markup).

In app.js I have the below modules and middleware to try and get flashes working

and a route router.post('/store/add', storeController.createStore);

which has the controller function

when I create a new store and am redirected to homepage the console.log shows the correct value my-messages { error: [ 'leave a review' ] } but I cannot get it into the view

my homepage ('/') view is

but nothing shows up. I've read quite a few similar questions on SO, but can't seem to get this right.

Any help much appreciated.

0 投票
1 回答
1792 浏览

node.js - express-handlebars 访问在客户端 javascript 中声明的变量

我正在学习在我的网站中使用把手作为模板。

我正在使用 node.js,所以我使用了 express-handlebars 模块,因为它看起来很流行并且有很多支持。

我这样设置了一些基本配置..

我的理解是,我在把手中的视图(即我的内容页面)是把手中的模板,并且我认为这些模板是代表我编译的,以便我可以专注于使用它们。

现在,我可以将数据从我的节点快速路由器传递到模板,然后使用把手符号 {{ variable }} 访问和呈现模板中的数据。

那太棒了。但是....我想使用 javascript 在客户端上声明变量,这可能是从我想输入的 Ajax 调用中获取一些数据的结果。不幸的是,这似乎永远不会奏效。我无法弄清楚如何访问模板中的局部变量。肯定有办法吗?

#with 块助手看起来很有希望,但不幸的是它没有达到我的预期。

这是我的一个内容页面的片段,其中有几次尝试在本地声明数据并呈现其值。

我已经阅读了很多文章并观看了很多视频,但我只是找不到有人使用“express-handlebars”模块然后呈现本地定义的数据的任何地方。

我可能遗漏了一些明显的东西,但我已经挣扎了一段时间了。

有人知道我该怎么做吗?

提前致谢。

0 投票
1 回答
1021 浏览

javascript - 在handlebars.js / express-handlebars中访问部分内部的javascript变量

首先,很抱歉问一个以前以类似方式问过的问题。我只是无法获得任何适合我的解决方案。

我正在使用 handlebars.js 和 node.js 中的 express-handlebars 库。我已经正确设置了服务器和客户端渲染,并且可以毫无问题地使用通过路由器传入的数据渲染部分。

但是,我正在努力访问页面上下文并呈现页面脚本中声明的 javascript 数据。

页面片段:

部分“吹嘘”:

我无法在我的哈希变量中获取值 var1 来呈现。如果我将硬编码字符串传递给部分,那么它可以正常工作,但我似乎永远无法访问我称之为“页面上下文”的内容。

我做错了什么,我似乎永远无法让它发挥作用?

我努力了...

  • 将“this”作为上下文传递到部分

  • 使用 '../variablename' 语法将其传递到部分

  • 将键值对发送到部分

  • 在部分调用和部分本身内部使用 @ 符号从上下文访问变量

...以及这些东西的许多其他组合。除非我传入硬编码字符串,否则尝试 100% 失败。

任何帮助将非常感激。我觉得这应该很简单。

0 投票
1 回答
221 浏览

javascript - 每个块传递多个参数车把

所以我试图在一个视图中呈现两个表单信息,我可以获取一个表单信息来呈现,但是我无法获取第二个表单来呈现必要的信息。

这是我到目前为止所拥有的。

PoemRegistration 表单信息正在呈现,但我只想从另一个表单中获取获奖者姓名。

我该怎么做呢?

0 投票
0 回答
433 浏览

node.js - Node.js 6.9.1 Express Handlebars - 无法设置自定义视图路径(尝试了其他解决方案,但仍然无法正常工作)

我现在遇到 Express Handlebars 的问题。我相信我已经阅读了文章,说为了使自定义视图正常工作,我需要正确指定 layoutsdir,我已经这样做了。这与 partialsdir 相同。我也尝试将其作为字符串,而不是数组,但它仍然无法正常工作。

如果您在我在这篇文章中添加的控制台上看到,您会注意到,当我记录它们时,它们似乎是正确的以及引擎的初始化,其中正确填充了正确的值并且 views 变量有已设置,但它仍然无法正常工作。它仍然会说仪表板/索引把手文件未加载。

入口点: /bin/dev

索引文件名供您参考: server/views/dashboard/index.handlebars

app.js 片段

仪表板控制器片段

控制台日志

E:\dino\development\src\node\app-folder\server\views E:\dino\development\src\node\app-folder\server\views\layouts E:\dino\development\src\node\app -folder\server\views\partials 在端口 3001 上运行。在 mongoURL 上连接到 mongodb... 错误:无法在视图目录“E:\dino\development\src\node\app-folder”中查找视图“dashboard/index” \views" 在 EventEmitter.render (E:\dino\development\src\node\app-folder\node_modules\express\lib\application.js:580:17) 在 ServerResponse.render (E:\dino\development\src \node\app-folder\node_modules\express\lib\response.js:1008:7) 在 E:/dino/development/src/node/app-folder/server/controllers/dashboardController.js:36:8 GET /仪表板 500 2274.734 毫秒 - 628

这是我现在的树

0 投票
0 回答
209 浏览

node.js - 使用带有 express/serve-index 的 Handlebars 模板

我想在自定义模板中提供带有 express/serve-index 的文件夹。

这是我尝试这样做的方法:

正如您所料,这是它在尝试渲染此路线时返回的错误:

我很确定我不应该那样使用app.render,但我真的不知道该怎么做......

在使用函数入口点之前,我尝试 app.render直接使用字符串返回,这样它至少会处理它并显示我的日志,并且在这种情况下html按应有的方式构造,但 serve-index 仍然使用其默认模板呈现。

作为参考,以下是我在 requires 中使用的版本:

0 投票
1 回答
3029 浏览

node.js - 车把上的今天日期

有人可以帮我在车把文件中获取今天的日期吗?输出应该类似于 "Today is Thursday" 。`

`

我一直在尝试这种方式,但不知何故它不起作用

0 投票
1 回答
482 浏览

node.js - 每个模板的把手在 Node 中不起作用

我正在使用 Node.js、Express 和 Handlebars 在客户端呈现模板。我没有收到任何错误,但没有填充模板。

查看:detail.hbs

这是来自服务器的响应:

{"success":true,"msg":"文件已成功升级!","file":["June Updates1-1519927100102.docx","export-11-03-2017-1519927100103.xls "]}

我错过了什么?

0 投票
1 回答
1911 浏览

javascript - express-handlebars 和 webpack - 无法在多页应用程序中导出部分和助手

我正在使用把手来满足我的模板需求。我显然需要在服务器上渲染一些模板来处理构建标准布局(带有页眉、页脚、导航栏和内容面板等)。但我还需要一些客户端模板,以便我可以使用 ajax 来获取数据,然后在模板中呈现它。

我在 node 中选择了 express-handlebars 模块,因为它会自动编译服务器中的模板和布局。

几篇文章建议我可以配置 webpack 以将我的模板、部分和帮助程序导出到客户端,以便我可以重用它们。

所以我创建了以下 webpack 配置:

我不想要单个分页应用程序,因此我已配置为仅导出与每个页面捆绑在一起的必要 .js 文件。

我负责 express-handlebars 配置的 app.js 片段如下:

我的问题是这些东西都没有导出到客户端/浏览器(部分和助手 - 我已经检查了导出的包,它们肯定不可用)。

最终我放弃了尝试让它工作,而是通过在脚本标签中编写标记来重新创建客户端中的部分,如下所示:

然后我得到这个脚本的引用并按照通常的方法编译模板和注入数据等。

但是...这是不可能的,因为服务器端模板编译会解析这个脚本,就好像它是页面视图的一部分,并且当它在客户端呈现时,我已经丢失了所有的把手符号 {{}}。

理想情况下,我只想能够配置 express-handlebars / webpack 组合以导出每个页面的正确部分和帮助程序,以便我可以使用它们。

很多人一定在这个确切的用例上苦苦挣扎,因为车把非常受欢迎,而且我知道它不应该只用于 SPA 中。

如果有人对我有任何建议,我将不胜感激。