serialport.js 未定义的 ansi 流

serialport.js undefined ansi stream

我正在尝试使用 serialport.js,即使现在只包含它也会导致运行时错误 TypeError: undefined is not an object (evaluating 'stream._ansicursor')

var React = require('react')
var SerialPort = require('serial port')

它的上下文在 react 应用程序中,因此它是从 jsx 编译而来的。我不知道这个错误是什么或如何产生的,查看错误中给出的行,它来自来自串行 port.js.

的代码
    /**
     * Creates a Cursor instance based off the given `writable stream` instance.
     */

    function ansi (stream, options) {
        if (stream._ansicursor) {
            return stream._ansicursor
        } else {
            return stream._ansicursor = new Cursor(stream, options)
        }
    }
    module.exports = exports = ansi

您尝试使用的串口包在 nodejs 流上运行,这意味着它需要 运行 在服务器上的 nodejs 上下文中。

根据您尝试使用串行端口包执行的操作,如果您想继续使用基于 React 的 Web UI 来完成此任务,您将需要分离出串行端口操作和使用 nodejs 框架编写 API。我建议像 ExpressJS 这样的东西。

通过这种方式,您可以向 API url 发送请求,这些 url 将在服务器上执行串行端口任务,并且 return JSON 反馈您的 Web 应用程序,用 React 编写,可以交互与.