渲染时正确格式化包含 javascript 代码

Correctly format included javascript code when rendering

我的项目监听一个端口。每当它收到请求时,它都会读取 XML-files 和 returns 某些 Javascript 的块,并将它们连接起来。我的问题是代码是 HTML-formatted 并在渲染 .ejs 文件时放在 header 中。顺便说一下,它是使用 Express 和 MVC 构建的。

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

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

如您所见,我已经提前对代码进行了转义,以避免引号、反斜杠等意外终止变量字符串。

在呈现 view-page 之前在 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 %>

关于为什么会发生这种情况以及如何prevent/correct有什么想法吗?如果可能的话,最好以 low-CPU 密集的方式:)

EJS readme 显示了您可以在模板中使用的不同标签。 <%= 会转义内容而 <%- 不会,所以使用后者。