我在项目上工作,我需要从客户端连接到称重机秤的串行端口,并点击另一个按钮,在一行中实时获取数据,而无需使用任何像节点Serialport库
`
<script setup>
import { Head, Link } from "@inertiajs/vue3";
import { ref } from "@vue/reactivity";
import {SerialPort} from 'serialport'
function connectToSerialPort(portName) {
const port = new SerialPort(portName, { baudRate: 9600 });
port.on('error', function(err) {
console.log('Error: ', err.message);
});
port.on('data', function(data) {
console.log('Data:', data.toString());
});
console.log(`Connecting to serial port ${portName}...`);
}
connectToSerialPort('COM4');
</script>
dex.js:10 Uncaught (in promise) TypeError: Class extends value undefined is not a constructor or null
at node_modules/@serialport/parser-byte-length/dist/index.js (index.js:10:41)
at __require2 (chunk-NKHIPFFU.js?v=b0a45716:15:50)
at node_modules/serialport/dist/index.js (index.js:13:14)
at __require2 (chunk-NKHIPFFU.js?v=b0a45716:15:50)
at index.js:24:46
n`
1条答案
按热度按时间iyzzxitl1#
看起来你正在尝试使用一个在后端使用的包,在Node.js中:
https://serialport.io/docs/
在前端(在基于Vue的前端代码中)。
这是行不通的,你必须创建一个基于Node.js的后端来使用这个包,然后你可以使用REST-api或类似的东西从前端与后端通信。
一个替代方案,如果你的应用程序可以只是一个桌面应用程序,而不是一个网站,将使用Electron:https://www.electronjs.org(Electron基本上是一个Chromium浏览器和Node.js一起用于桌面应用程序开发)