【问题标题】:TypeError: Cannot read property 'length' of null - Node CanvasTypeError:无法读取 null 的属性“长度” - 节点画布
【发布时间】:2018-08-09 08:14:52
【问题描述】:

我尝试在 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)

【问题讨论】:

    标签: node.js canvas


    【解决方案1】:

    好的,我看到您使用的是上面的 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 canvas@2.0.0-alpha.2

    【讨论】:

      【解决方案2】:

      这个错误可能不是'bluebird'引起的,我认为是因为你访问了一个变量的'length'属性并且该变量为null;

      你能添加整个错误提示吗?抱歉,我的声誉不足以添加评论;

      【讨论】:

      • 为什么这是一个答案,请在评论中添加。
      • 评论需要50声望... :(
      • 我的坏船长。
      • 但我的脚本在 ubuntu 中正常运行,但无法在 windows 中运行
      • 您可以在问题描述中添加整个错误消息吗?平台错误可能由多种原因引起;
      【解决方案3】:

      按照以下步骤操作:

      1. 在 Google Chrome 中打开开发工具(其他浏览器中也有类似的工具)。
      2. 打开“来源”标签。
      3. 点击选项卡右上角的“例外时暂停”按钮,该按钮看起来像一个八角形内的暂停符号。
      4. 选中“捕获异常时暂停”复选框。
      5. 在“开发工具”窗口仍打开时重新创建导致错误的流程。

      代码将停止错误。如果刹车将出现在bluebird 的代码或您未编写的任何其他代码上,请向上跟踪堆栈,直到遇到您编写的行。看看这一行发生了什么,应该很容易理解出了什么问题。

      【讨论】:

      • 抱歉,它不是一个基于 Web 的应用程序,我将它用作基于控制台的应用程序,以便简单地使用它来使用画布生成图形。
      猜你喜欢
      • 2018-03-27
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2020-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多