渲染时正确格式化包含 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 显示了您可以在模板中使用的不同标签。 <%=
会转义内容而 <%-
不会,所以使用后者。
我的项目监听一个端口。每当它收到请求时,它都会读取 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 显示了您可以在模板中使用的不同标签。 <%=
会转义内容而 <%-
不会,所以使用后者。