通过React.js网站控制树莓派?

时间:2016-12-21 20:46:00

标签: node.js reactjs raspberry-pi raspbian

我已经编写了一个nodejs应用程序并将其放在我的raspberry pi上。这一切都很好。但是,我现在想通过React中内置的Web浏览器界面/网站来控制我的nodejs应用程序。我该怎么做?该网站将在互联网上,但需要以某种方式访问​​我的覆盆子pi计算机并修改那里的东西。

2 个答案:

答案 0 :(得分:2)

我认为有两种方法可以做到这一点:

  • 使用 raspberry pi作为Web服务器:例如安装Nginx / Apache(它们是Web服务器)并为它们提供React应用程序。
  • 使用外部托管,例如OVH,并为他们提供您的React应用程序。

我不知道你是否知道如何做一个React网站,但是网上有很多教程,比如this one

此处的目标是在NodeJS应用程序和您的网站之间创建 API关系。 NodeJS服务器必须侦听端口(例如8080)和与命令相对应的特定URL(例如,/ api / reboot将重新启动应用程序)。在您的网站中,您只需在按下按钮后调用这些URL(例如,“重新启动”按钮将向http://raspberrypi:8080/api/reboot发送POST请求)。

基本上,将您要执行的每个命令与NodeJS应用程序链接到一个网址,并将其链接到您的网站中。

如果你想安全传输(所以没有人可以重启你的应用程序),只需要包含一些密码和HTTPS:)

见啊!

答案 1 :(得分:0)

以下是链接:MyExample

还建议添加模块子进程以使用这样的执行命令:

var exec = require('child_process').exec;

execute('sudo reboot'); use this when receiving socket  


function execute(command) {
    var cmd = exec(command, function(error, stdout, stderr){
        console.log("error: ", error);
    });
}

有了这个你可以使客户端与“终端”(文本持有人)和按钮单击客户端将使用您的命令在文本持有者发送信息到RPI。