ejs.co的EJS文档说“调试EJS错误很容易:你的错误是普通的JavaScript异常,包括模板行号。”
但是,在使用模板中的错误调试代码时,我只获得对cza.js模块中调用ejs.renderFile
的函数的引用,以及对EJS(ejs.js)本身内部的“内部”错误的引用。缺少对.ejs模板中的错误(理想情况下是行号)的引用,实际上该模板未被提及。
因此,屏幕截图是ejs.js中的错误,其中EJS本身卡住处理错误的模板,而不是模板本身,因此毫无价值:
那么,如何让调试器指出模板中的错误?
所以,我刚刚发现EJS会将代码打印到终端,除非调试器在EJS指出错误之前没有介入处理异常。在我的场景中,我使用node --inspect app.js
调试应用程序,启用VS代码中的调试自动附加。然后,调试器会描述问题屏幕截图中显示的异常。
我是如何发现调试器阻止EJS输出到终端的?我有一个浏览器已经请求该应用程序,当我启动它时,在连接调试器之前的第二个内发生了异常。