TypeError:无法读取 null 的属性“length”-Node Canvas
2018-08-09
1905
我尝试在 Linux 中运行我的 Nodejs 脚本项目,它运行良好,但每当我尝试在 Windows 中运行同一个项目时,它都会抛出一个错误。过去几天我一直在尝试解决这个问题。不确定为什么我会遇到这个问题。请大家帮我解决这个问题。提前谢谢。
xyz\node_modules\bluebird\js\release\async.js:61
fn = function () { throw arg; };
^
TypeError: Cannot read property 'length' of null
at Object.acquireContext (E:\app_server\node_modules\chart.js\src\platforms\platform.dom.js:340:19)
at Chart.construct (E:app_server\node_modules\chart.js\src\core\core.controller.js:79:27)
at new Chart (E:\app_server\node_modules\chart.js\src\core\core.js:42:8)
at jsdom.envAsync.then.window (E:\app_server\node_modules\chartjs-node\index.js:106:31)
at tryCatcher (E:\app_server\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (E:\app_server\node_modules\bluebird\js\release\promise.js:512:31)
at Promise._settlePromise (E:\app_server\node_modules\bluebird\js\release\promise.js:569:18)
at Promise._settlePromise0 (E:\app_server\node_modules\bluebird\js\release\promise.js:614:10)
at Promise._settlePromises (E:\app_server\node_modules\bluebird\js\release\promise.js:693:18)
at Promise._fulfill (E:\app_server\node_modules\bluebird\js\release\promise.js:638:18)
at Object.done (E:\app_server\node_modules\bluebird\js\release\nodeback.js:42:21)
at process.nextTick (E:\app_server\node_modules\jsdom\lib\jsdom.js:320:18)
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)
3个回答
好的,我看你正在使用上述的 canvas-2.0.0 alpha.8 库,它处于 alpha 测试阶段,有些人遇到了和我遇到的相同问题。我参考了这个 GitHub 开放问题 https://github.com/vmpowerio/chartjs-node/issues/42 。我也遇到了与 canvas-2.0.0 alpha.13 相关的相同问题,我降级了 canvas 2.0.0-alpha.2,它对我有用。尝试安装以下命令 npm i [email protected]
VISHAL LIMGIRE
2018-10-31
此错误可能不是由 'bluebird' 引起的,我认为这是因为你访问了一个变量的 'length' 属性,而该变量为空;
你可以添加整个错误提示吗?抱歉我的声誉不足以添加评论;
hu newhuan
2018-08-09
请按照以下步骤操作:
- 在 Google Chrome 中打开 Dev Tools(其他浏览器中也有类似的工具)。
- 打开“Sources”选项卡。
- 单击选项卡右上角的“出现异常时暂停”按钮,该按钮看起来像一个八边形内的暂停符号。
- 选中“捕获异常时暂停”复选框。
- 在 Dev Tools 窗口仍打开时重新创建导致错误的流程。
代码将因错误而中断。如果中断的代码属于
bluebird
的一部分或您未编写的任何其他代码,请向上跟踪堆栈跟踪,直到找到您编写的一行。查看此行中发生的情况,应该很容易理解哪里出了问题。
Shai
2018-08-09