如何将玉页变成html?

时间:2013-09-08 23:01:08

标签: html node.js express pug

我有一个名为syntax.jade的jade文件。我需要的是一种方法,将syntax.jade与我通常用res.render语句传递的信息转换为节点中的html文档,以便我可以在该表单中操作它。基本上我想要的是这个:

当我使用

res.render('syntax', {comment: comment}, function(err, html)) 

html包含页面的html作为字符串。我需要另一种方法来获取不需要我在浏览器中呈现页面的代码。

我想这样做的原因是我可以将生成的HTML代码包含在另一个res.render语句中,以便提供格式而不是在前端进行所有格式化。

2 个答案:

答案 0 :(得分:1)

您可以将Jade作为节点模块,并使用renderFile()方法。

var jade = require('jade');

jade.renderFile('syntax.jade', {comment: comment}), function (err, html) {
  if (err) throw err;
  // rendered string is in html variable
});

如果没有错误,那么您将获得一个呈现的HTML字符串。如果要同步执行此操作,则不要指定回调:

var html = jade.renderFile('filename.jade', {comment: comment});

答案 1 :(得分:0)

这已经是你的了。来自res.render

上的明确文档
  

当回调提供可能的错误并呈现时   字符串被传递,并且不执行自动响应。

所以res.render(viewName, locals)同时渲染HTML并将该HTML作为HTTP响应体发送。但是,带有3个参数的res.render(viewName, locals, callback)只会呈现HTML并将其传递给回调,而不会发送任何HTTP响应。因此,您可以对HTML执行任何操作,然后稍后发送响应。

还有app.render这是另一个通用实用工具,可以在不与特定http请求/响应有任何关系的情况下呈现内容。