渲染

时间:2015-06-07 23:03:45

标签: node.js model-view-controller express view

我的项目收听了一个端口。每当它收到请求时,它会读取几个XML文件并返回某些Javascript块,连接起来。我的问题是代码是HTML格式的,并在呈现 .ejs 文件时放在标题内。顺便说一句,它是使用Express和MVC构建的。

这些块在单独的类方法中定义,如下所示:

Module.prototype.opens = function () {
   var returnvar = "var myobject=function(){var D=\"undefined\",r=\"object\",S=\"
   ... etc

正如您所看到的,我已提前转义代码以避免引起引号,反斜杠等更多意外终止变量字符串。

在渲染视图页面之前在console.log()中输出时,代码看起来很好:var myobject=function(){var D="undefined",r="object",S=" ...

但是,在呈现视图时,源代码如下所示:

var myobject=function(){var D="undefined",r="object",S="

我已经尝试过替换,取消等等但是因为我(如前所述)将代码输出到控制台以进行调试,就在我将其传递给视图之前,它表明转换发生在渲染过程中。

渲染器看起来像这样:

var readSymbolicsXMLCallback = function(data) {
    res.render('index', {
        id: req.params.id,
        embedcode: data
    });
}

该视图只包含以下内容:

<%= embedcode %>

为什么会发生这种情况以及如何预防/纠正它的任何想法?最好尽可能以低CPU密集的方式:)

1 个答案:

答案 0 :(得分:1)

EJS readme显示您可以在模板中使用的不同标记。 <%=将逃避内容,而<%-则不会,因此请使用后者。