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

我已经写了一个nodejs应用程序,并把它放在我的树莓派。 这很好。 但是,现在我想通过React中内置的Web浏览器界面/网站来控制我的nodejs应用程序。 我将如何做到这一点? 该网站将在互联网上,但需要有某种方式访问​​我的覆盆子电脑,并修改那里的东西。

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

  • 使用你的树莓派作为networking服务器 :例如安装Nginx / Apache(他们是networking服务器),并给他们你的React应用程序。
  • 使用外部托pipe ,例如OVH,并给他们您的React应用程序。

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

这里的目标是在你的NodeJS应用程序和你的网站之间build立一个API关系 。 NodeJS服务器必须监听一个端口(例如8080)和特定的URL(与/ api / reboot将重新启动应用程序相对应)。 而在你的网站中,你只需要在按下button后调用这些URL(例如,“Reboot”button,将发送POST请求到http:// raspberrypi:8080 / api / reboot )。

基本上,你想要执行的每个命令与你的NodeJS应用程序链接到一个url,并链接到您的网站上的行动。

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

再见 !

这里是链接: MyExample

另外build议添加模块subprocess使用执行命令如下:

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); }); } 

有了这个你可以使客户端与“terminal”(文本持有人)和button点击客户端将发送信息到RPI与您的命令在文本持有人。