【问题标题】:Error: fs.readFileSync is not a function错误:fs.readFileSync 不是函数
【发布时间】:2017-02-25 22:34:18
【问题描述】:

我正在尝试通过我正在制作的 Chrome 应用程序将十六进制文件闪存到 Arduino。我使用了下面的基本 NodeJS 代码,并使用 browserify 对其进行了转换,以便它可以在浏览器中运行。它不起作用,我在控制台中收到错误消息“TypeError:fs.​​readFileSync 不是函数”

var Avrgirl = require('avrgirl-arduino');

var avrgirl = new Avrgirl({
  board: 'uno'
});

avrgirl.flash('Blink.cpp.hex', function (error) {
  if (error) {
    console.error(error);
  } else {
    console.info('done.');
  }
});

【问题讨论】:

  • fs 模块在浏览器中不可用。
  • 我在哪里使用它?
  • 可能在avrgirl.flash() 内部,因为您要传递一个文件名。你不能在浏览器中运行这种代码。您应该在 node.js 中运行它。 browserify 不会为浏览器中不存在的低级功能创造奇迹。

标签: javascript node.js arduino browserify


【解决方案1】:

您无法在浏览器中运行此类代码(即使使用 browserify)。你应该在 node.js 中运行它。

我猜你的错误来自于:

avrgirl.flash('Blink.cpp.hex', ...)

因为您传递的是文件名,而该函数可能正在尝试读取该文件。

browserify 不能神奇地赋予浏览器其他功能,例如从硬盘读取文件或与 arduino 硬件通信。这段代码可能是要在 node.js 环境中运行的。

avrgirl-arduino 模块的 instructions 非常清楚地表明您应该在 node.js 中运行。

【讨论】:

    【解决方案2】:

    我知道这已经很老了,但是:Noopkat 制作了一个 avrgirl 演示,它使用 webserial 从浏览器中闪存板!看看这个。 https://github.com/noopkat/avrgirl-arduino/tree/master/tests/demos/webserial

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-24
      • 2020-11-04
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多