【发布时间】:2018-04-30 06:31:19
【问题描述】:
我正在通过 Node+Express 渲染 Nunjucks。
我有大量的视图,突然我的一个视图在以下堆栈跟踪中抛出了一个错误。
如何找出错误源自哪个模板或帮助程序/宏?
"Template render error: Template render error: Template render error: Template render error: TypeError: Cannot read property 'height' of null
at Object._prettifyError (/code/node_modules/nunjucks/src/lib.js:35:11)
at /code/node_modules/nunjucks/src/environment.js:547:19
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:151:12)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:57:12)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:46:11)
at /code/node_modules/nunjucks/src/environment.js:555:11
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:155:12)
at /code/node_modules/nunjucks/src/environment.js:555:11
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:105:12)
at /code/node_modules/nunjucks/src/environment.js:555:11
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:11:11)
at /code/node_modules/nunjucks/src/environment.js:597:9
at Template.root [as rootRenderFunc] (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:188:3)
at Template.getExported (/code/node_modules/nunjucks/src/environment.js:595:10)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:10:5)
at Environment.getTemplate (/code/node_modules/nunjucks/src/environment.js:263:9)
at Template.root [as rootRenderFunc] (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:8:5)
at Template.render (/code/node_modules/nunjucks/src/environment.js:540:10)
at eval (eval at _compile (/code/node_modules/nunjucks/src/environment.js:617:18), <anonymous>:104:10)
at fn (/code/node_modules/a-sync-waterfall/index.js:26:24)
at /code/node_modules/a-sync-waterfall/index.js:66:22
at executeSync (/code/node_modules/a-sync-waterfall/index.js:8:15)"
【问题讨论】:
-
尝试转到
node_modules/nunjucks/src/environment.js:547并添加console.log(err, _Obj3)。 -
感谢@AikonMogwai 非常适合在视图助手中发现错误!但是,如果它是直接在 nunjuck 文件中的错误,它并没有说明是哪个文件。我发现了
_proto3.render = function render(ctx, parentFrame, cb) {的捕获并记录了this。其中包含path、文件名和tmplStr- nunjucks 在错误发生之前进行了多长时间的解析。
标签: node.js templates nunjucks