SerialPort.list 不是函数

Nin*_*o 1 3 node.js node-serialport

我尝试创建一个端口数组,使用nodeJS的serialport模块将串行设备连接到该数组。我使用了以下代码,我认为理论上应该有效:

var getPortsList = (callback) => {
    var portsList = [];

    SerialPort.list((err, ports) => {
        ports.forEach((port) => {
            portsList.push(port.comName);
        });

        callback(null, portsList);
    });
};
Run Code Online (Sandbox Code Playgroud)

每当我执行它时,我都会收到以下错误:TypeError: SerialPort.list is not a function。你试图用谷歌搜索这个问题,但找不到任何有用的东西。非常感谢任何方式的帮助。

Lot*_*re1 8

导入串口的方式在版本 >= 10 中发生了变化:

下面有两个等效的示例来导入串行端口模块。

解决方案#1

var sp = require('serialport')

sp.SerialPort.list()
.then((data) => console.log(data))
.catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)

解决方案#2

const {SerialPort} = require('serialport')

SerialPort.list()
.then((data) => console.log(data))
.catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)

作为参考,此处说明: https ://serialport.io/docs/guide-upgrade#exports