调试 EJS 模板时 bugs/exceptions 的不精确描述
Imprecise descriptions of bugs/exceptions when debugging EJS templates
ejs.co 的 EJS 文档说“调试 EJS 错误很容易:您的错误是普通的 JavaScript 异常,包含模板行号。 ”。
然而,当调试模板中有错误的代码时,我只得到对我的 cza.js 模块中调用 ejs.renderFile
以及对 EJS (ejs.js) 本身中的 "internal" 错误的引用。缺少对 .ejs 模板(最好是行号)中的错误的引用,实际上该模板未被提及。
因此,屏幕截图是 ejs.js 中的一个错误,其中 EJS 本身在处理有问题的模板时卡住了,而不是模板本身,因此毫无价值:
那么,如何让调试器指出我模板中的错误?
所以,我刚刚发现 EJS 确实 将代码打印到终端,除非调试器在 EJS 指出错误之前不介入处理异常.
在我的场景中,我使用 node --inspect app.js
调试应用程序,并启用了 VS Code 中的调试自动附加功能。调试器然后描述异常,如问题屏幕截图所示。
我是如何发现调试器阻止 EJS 输出到终端的?我有一个浏览器已经在请求该应用程序,当我启动它时,在连接调试器之前的一秒钟内发生了异常。
ejs.co 的 EJS 文档说“调试 EJS 错误很容易:您的错误是普通的 JavaScript 异常,包含模板行号。 ”。
然而,当调试模板中有错误的代码时,我只得到对我的 cza.js 模块中调用 ejs.renderFile
以及对 EJS (ejs.js) 本身中的 "internal" 错误的引用。缺少对 .ejs 模板(最好是行号)中的错误的引用,实际上该模板未被提及。
因此,屏幕截图是 ejs.js 中的一个错误,其中 EJS 本身在处理有问题的模板时卡住了,而不是模板本身,因此毫无价值:
那么,如何让调试器指出我模板中的错误?
所以,我刚刚发现 EJS 确实 将代码打印到终端,除非调试器在 EJS 指出错误之前不介入处理异常.
在我的场景中,我使用 node --inspect app.js
调试应用程序,并启用了 VS Code 中的调试自动附加功能。调试器然后描述异常,如问题屏幕截图所示。
我是如何发现调试器阻止 EJS 输出到终端的?我有一个浏览器已经在请求该应用程序,当我启动它时,在连接调试器之前的一秒钟内发生了异常。