Javascript 调试swig模板引擎,nodejs

Javascript 调试swig模板引擎,nodejs,javascript,node.js,swig-template,Javascript,Node.js,Swig Template,有没有办法调试node.js的swig模板引擎,因为我没有得到在某些情况下发生错误的确切文件, e、 g 这是我在控制台中获得的上述信息: 2015-08-13T09:38:12.254Z - error: SyntaxError: Unexpected token s at Object.parse (native) at Object.eval [as tpl] (eval at <anonymous> (/home/saurabh/intl/via_node/node_modu

有没有办法调试node.js的swig模板引擎,因为我没有得到在某些情况下发生错误的确切文件, e、 g

这是我在控制台中获得的上述信息:

2015-08-13T09:38:12.254Z - error: SyntaxError: Unexpected token s
at Object.parse (native)
at Object.eval [as tpl] (eval at <anonymous> (/home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:498:13), <anonymous>:6:810)
at compiled (/home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:619:18)
at Object.eval [as tpl] (eval at <anonymous> (/home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:498:13), <anonymous>:27:611)
at compiled (/home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:619:18)
at /home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:559:20
at /home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:690:9
at fs.js:268:14
at Object.oncomplete (fs.js:107:15)
2015-08-13T09:38:12.254Z-错误:语法错误:意外的令牌
at Object.parse(本机)
at Object.eval[作为tpl](eval at(/home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:498:13),:6:810)
编译时(/home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:619:18)
at Object.eval[作为tpl](eval at(/home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:498:13),:27:611)
编译时(/home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:619:18)
at/home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:559:20
at/home/saurabh/intl/via_node/node_modules/swig/lib/swig.js:690:9
财政司司长:268:14
在Object.oncomplete(fs.js:107:15)

没有提到发生错误的模板文件。

编辑:你是对的,问题是“某个随机字符串”,你不能
JSON。解析
字符串不是JSON

所以你应该有这样的东西:

{% set temp = JSON.parse('{"test": true}') %}

我用过,我也用过
set temp
是错误的,它不是Javascript,并且使用语法
{%}
在模板中执行Javascript。可能您需要阅读更多内容。您确定var对您有效吗,因为我尝试了它,它在我的案例中给出了语法错误。我给出该字符串只是为了产生错误,问题是swig模板引擎无法检测错误发生在文件的哪一行。严格地说,这不是Swig/模板问题,而是向
JSON.parse()
提供错误数据的问题。我不认为Swig能够捕捉到那些能够让它显示其确切发生位置的内容(不需要将生成的每一行包装在
try/catch
块中)。我在Swig模板文件中找不到任何关于try-catch的规定。没有。我认为在模板中解析JSON有点反模式tbh,因此Swig中缺少任何功能来缓解解析过程中出现的任何问题。您可以创建一个自定义过滤器或标记来捕获错误,但这听起来比将JSON解析移到JS代码中更像是一种折磨。
{% set temp = JSON.parse('{"test": true}') %}