html javascript web serial API

kzmpq1sx  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(241)

我在项目上工作,我需要从客户端连接到称重机秤的串行端口,并点击另一个按钮,在一行中实时获取数据,而无需使用任何像节点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`
iyzzxitl

iyzzxitl1#

看起来你正在尝试使用一个在后端使用的包,在Node.js中:
https://serialport.io/docs/
在前端(在基于Vue的前端代码中)。
这是行不通的,你必须创建一个基于Node.js的后端来使用这个包,然后你可以使用REST-api或类似的东西从前端与后端通信。
一个替代方案,如果你的应用程序可以只是一个桌面应用程序,而不是一个网站,将使用Electron:https://www.electronjs.org(Electron基本上是一个Chromium浏览器和Node.js一起用于桌面应用程序开发)

相关问题