首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Heroku应用程序访问本地机器的串口(USB)数据?

如何从Heroku应用程序访问本地机器的串口(USB)数据?
EN

Stack Overflow用户
提问于 2021-11-03 09:51:54
回答 1查看 182关注 0票数 0

我有一个节点表达式应用程序,它使用Node-Serialport库。部署在Heroku云平台上。当它在本地主机上运行时,它就工作得很好。当我在Heroku平台上部署时,它并不是获取端口数据。

它在Heroku日志中抛出以下错误,

2021-11-03T08:44:28.769675+00:00herokurout: at=error code=H13 desc=“未响应”method=GET path=/api/v1/port/list“method=GET fwd="157.49.66.149”dyno=web.1 connect=0ms service=20ms status=503 bytes=0 protocol=https 2021-11-03T08:44:28.877150+00 herokuweb.1:状态1的进程“

我们能解决这个问题吗?

我的代码片段,

代码语言:javascript
复制
var express = require('express'),
    app = express(),
    bodyParser = require('body-parser'),
    port = process.env.PORT || 3000,
    cors = require('cors');
require("dotenv").config();
const SerialPort = require('serialport');

app.use(bodyParser.json())

app.use(cors({
    origin: '*'
}));

const server = require('http').createServer(app);

app.get('/port/list', async (req, res) => {
    const list = await SerialPort.list();
    return res.send(list);
})

server.listen(port, "0.0.0.0", function () {
    console.log("Listening on Port 3000");
});

它正在我的本地主机上工作,它读取本地机器端口数据。

EN

回答 1

Stack Overflow用户

发布于 2021-11-03 10:21:56

你不能那样做™。

当您在Heroku或任何其他服务器上运行nodejs应用程序时,serialport包尝试访问服务器上的串行端口,而不是本地计算机上的串口。在Heroku和许多其他云提供商部署的虚拟机中,物理串行端口根本无法用于运行在虚拟机上的软件。

如果你能访问串口,你会怎么处理它?它位于某个数据中心的一个庞大的服务器架中。

如果您需要使用web应用程序访问本地机器上的串口,则需要名为串行的Web。不幸的是,它仅仅是基于铬的浏览器上的可用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69822765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档