Javascript/webdev:为什么需要服务器来连接硬件?

Javascript/webdev:为什么需要服务器来连接硬件?,javascript,web,arduino,Javascript,Web,Arduino,许多JS应用程序都是客户端的。但是,如果我想与Arduino接口,我需要使用Node.js之类的东西在服务器上实现。为什么会这样?出于安全和跨平台的原因,web应用程序仅限于。最初,web应用程序可以只请求加载URL,在聚焦时处理键盘/鼠标输入,并控制窗口中的显示 其他任何操作都取决于浏览器必须提供的附加API,因此默认状态仅此而已。同样,出于安全原因,无法从web应用程序访问操作系统的API 那么,为什么当前的浏览器没有访问Arduinos的API呢?除此之外,原因是在不影响安全性的情况下(例

许多JS应用程序都是客户端的。但是,如果我想与Arduino接口,我需要使用Node.js之类的东西在服务器上实现。为什么会这样?

出于安全和跨平台的原因,web应用程序仅限于。最初,web应用程序可以只请求加载URL,在聚焦时处理键盘/鼠标输入,并控制窗口中的显示

其他任何操作都取决于浏览器必须提供的附加API,因此默认状态仅此而已。同样,出于安全原因,无法从web应用程序访问操作系统的API

那么,为什么当前的浏览器没有访问Arduinos的API呢?除此之外,原因是在不影响安全性的情况下(例如,避免web应用程序读取您的USB键盘输入,从而捕获所有未来密码,或使您的计算机过热),很难允许此类访问USB设备


幸运的是,目前正在开发这样一个标准——它被称为。但是,截至2016年5月,默认情况下没有浏览器支持它,尽管您可以通过更改
chrome://flags/#enable-实验性web平台功能

请详细说明,您想知道什么?node.js是用c/c++编写的,它不是普通的javascript,后者将前者留给客户端好吧,下面是我的情况(我不知道,所以请告诉我):我正在使用p5.js与arduino进行接口,但它需要我安装node,以便它可以在服务器上运行。为什么如果我使用硬件I/O,我需要在服务器上运行它,但如果我只做基本的JS web脚本(如画一个圆圈),我可以在没有服务器的情况下在本地运行所有东西?通常,你可以通过通信端口与Arduino通信。网页中的JS无法访问端口。那么,你运行的服务器可以。那么,如果我把这个放到网上,这是否意味着用户必须运行他们自己的本地服务器才能与Arduino交互?@nullsala请把这个评论放到问题中。请注意,使用JavaScript进行设备控制的另一种完全不同的方式是通过Node.js,如OP所述。这种方法完全避免了浏览器问题。