创建SerialPort时遇路径未定义错误及构造函数问题求助
解决SerialPort创建时"path"未定义的错误
问题分析
你遇到的TypeError: "path" is not defined: undefined错误,大概率是SerialPort版本的API差异导致的——部分新版本对构造函数的参数格式要求更严格,或者导入方式不匹配当前版本。
解决方案
方案1:将路径放入配置对象中
修改SerialPort的实例化代码,把端口路径作为配置对象的path属性传入,而非单独作为第一个参数:
const { SerialPort }= require('serialport') const Readline = require('@serialport/parser-readline'); const port = new SerialPort({ path: '/dev/ttyACM0', baudRate: 9600 }); port.write('hello from node\n', (err) => { if (err) { return console.log('Error on write: ', err.message); } console.log('msg written') });
方案2:调整导入方式
如果出现SerialPort不是构造函数的错误,说明解构导入可能不匹配当前版本,改用默认导入:
const SerialPort = require('serialport') const { Readline } = require('@serialport/parser-readline'); const port = new SerialPort({ path: '/dev/ttyACM0', baudRate: 9600 }); port.write('hello from node\n', (err) => { if (err) { return console.log('Error on write: ', err.message); } console.log('msg written') });
额外检查
- 执行
npm list serialport查看当前安装的版本,对应官方文档确认API用法 - 确保端口权限:执行
sudo chmod 666 /dev/ttyACM0赋予读写权限,避免后续写入失败
内容的提问来源于stack exchange,提问作者TheDNAHero
相关产品推荐
相关产品推荐

