Javascript 有没有办法用Express3.x将模板渲染成变量?

Javascript 有没有办法用Express3.x将模板渲染成变量?,javascript,node.js,express,template-engine,hogan.js,Javascript,Node.js,Express,Template Engine,Hogan.js,在express3.x中,api谈到app.render(“视图”、数据、回调); 它应该执行与res.render相同的操作,但是使用一个带有渲染数据的回调,而不是将其作为响应发送。 是否有在路由文件中使用app.render的方法。这是不可能的,因为除了app.js之外,任何地方都没有app变量 也许还有其他简单的方法来渲染模板并将其存储为变量。 我需要它来发送html电子邮件。 我正在我的应用程序中使用hogan.js模板 谢谢您可以编写路由和模块,以便在需要时通过应用程序 module.

在express3.x中,api谈到app.render(“视图”、数据、回调); 它应该执行与res.render相同的操作,但是使用一个带有渲染数据的回调,而不是将其作为响应发送。 是否有在路由文件中使用app.render的方法。这是不可能的,因为除了app.js之外,任何地方都没有app变量 也许还有其他简单的方法来渲染模板并将其存储为变量。 我需要它来发送html电子邮件。 我正在我的应用程序中使用hogan.js模板


谢谢

您可以编写路由和模块,以便在需要时通过应用程序

module.exports = function (app) {
  return {
    'index': function(req, res, next) {
      // app is avail here 
    }
  }
}
并相应地要求它,并在app.js中传递app变量

var app = module.exports = express.createServer();
var validate = require('./routes/validate')(app);

这可能不是一种标准的方式,尤其是编写路由文件的方式可能会很尴尬。但它使应用程序变得有用。到你的路线

您可以编写路由和模块,以便在需要时通过应用程序

module.exports = function (app) {
  return {
    'index': function(req, res, next) {
      // app is avail here 
    }
  }
}
并相应地要求它,并在app.js中传递app变量

var app = module.exports = express.createServer();
var validate = require('./routes/validate')(app);

这可能不是一种标准的方式,尤其是编写路由文件的方式可能会很尴尬。但它使应用程序变得有用。到你的路线

另一种方法是直接调用模板引擎。例如,如果与一起使用,则可以执行以下操作:

var hogan = require('consolidate').hogan;

hogan(path_to_template or string, rendering_values, function(err, result) {
  console.log(result);
});

我发现这比使用app.render更好,因为它更直接。

另一种方法是直接调用模板引擎。例如,如果与一起使用,则可以执行以下操作:

var hogan = require('consolidate').hogan;

hogan(path_to_template or string, rendering_values, function(err, result) {
  console.log(result);
});

我发现这比使用app.render更好,因为它更直接。

我在想一种方法来实现这一点,但我从来没有想到过。。。这将非常有效。我要给它一个机会为你服务。你可能想检查不同的样式,因为任何扫描源代码的自动完成等工具都会疯掉。我在想一种方法来做到这一点,但我从来没有想到这一点。。。这将非常有效。我要给它一个机会为你服务。你可能想检查不同的样式,因为任何扫描源代码的自动完成等工具都会发疯。在
req
res
上都有一个
app
属性,你可以使用。请你进一步解释一下。如果你只需要回调,就把它添加到。。。我要指出的是,如果你需要访问
app
(我认为你根本不需要),你可以使用
res.app.render
,在
req
res
上都有一个
app
属性,你可以使用它。请你进一步解释一下。如果你只需要回调,就把它添加到。。。我要指出的是,如果您需要访问
app
(我认为您甚至不需要),您可以使用
res.app.render
,我想使用app.render使我的代码能够独立于诱人的引擎,特别是当我为不同的项目尝试了其中的一些,但共享了代码的某些部分时,我想使用app.render使我的代码能够独立于诱人的引擎,特别是当我为不同的项目尝试了其中的一些,但共享了代码的某些部分时