【发布时间】:2016-07-05 15:21:11
【问题描述】:
我使用nodeJS/express 作为后端,使用jade 作为模板引擎。我的 Javascript 部分需要来自服务器的一些变量。一般来说,可以这样做:
script(type='text/javascript').
var user = !{JSON.stringify(userObject)};
除了userObject 有<script>[some text]</script> 块的情况外,一切正常。请不要问为什么这个块出现在userObject,因为这是内部的事情,我只是想处理这种情况。
由于 Javascript 解析器比 HTML 解析器执行得早,我的嵌入因错误而被破坏:
<script>
var user = {
name: 'Erik',
about: '<script>about me</script>'
};
</script>
未捕获的 SyntaxError:无效或意外令牌
由于about me</script> 行导致错误发生,因为它关闭了主要的<script> 标记。
所以我的问题是:处理此错误的正确方法是什么?
【问题讨论】:
-
当我们遇到类似问题时(在这种情况下撇号也会导致中断),我们编写一个 API 调用来获取我们需要的数据并使用节点的 $http 或在脚本标签中使用 ajax 调用它。
-
我不喜欢通过附加请求获取初始数据的想法。如果失败了怎么办?
-
如果您在为您的网站提供服务的同一台服务器上使用完全相同的功能,那么它似乎不太可能在任何不会失败的情况下失败。
-
会的。
<script>about me</script>字符串可以在任何地方
标签: javascript json node.js express pug