【问题标题】:Rendering a view without res.render渲染没有 res.render 的视图
【发布时间】:2016-08-18 16:26:11
【问题描述】:

按照文档:

https://github.com/ericf/express-handlebars

我需要编译一个模板,但没有使用 res.render('myView') 的文档化方法,因为在我的上下文中没有 res。

这是我目前所拥有的:

var express = require('express')
    , exphbs = require('express-handlebars');
    , hbs = exphbs.create({
        extname: '.hbs',
        defaultLayout: 'default'
    });

app.use(express.static('public'));
app.engine('hbs', hbs.engine);
app.set('view engine', 'hbs');

var tplVars = {
    id: 12345,
    name: 'John Doe'
  }

hbs.handlebars.compile( .. path to pdf.hbs ... )(vars);

现在,显然我需要注册模板。这里缺少什么?

我在 /views 中的文件结构:

views/
    layouts/
      default.hbs
    partials/
      css.hbs
    pdf.hbs

【问题讨论】:

  • 您是否尝试在应用启动时呈现模板?如果是这样,您总是可以将渲染包装在app.use((req, res, next) => {res.render('view', data)})
  • 不,我不是。上面的代码是断章取义的。我所追求的是如何编译具有部分的 Handlebars 模板。我试图避免使用 res.render - 因为在我的上下文中没有 res
  • 我不认为您可以使用express-handlebars 编译模板,但您可以使用handlebars 编译模板。 stackoverflow.com/a/30032819/710005
  • @SwarajGiri 如果您将您的评论作为答案发表,我会批准它,因为您是对的。这是一个把手工作 - 不适合快速把手。

标签: node.js express handlebars.js


【解决方案1】:

从上面的评论中复制粘贴。

我认为你不能用express-handlebars 编译模板,但你可以用handlebars 编译模板。 上一个答案here中的详细信息。

【讨论】:

    猜你喜欢
    • 2019-02-05
    • 2013-03-04
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2021-11-13
    • 2017-08-24
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多