如何使用Node.js在客户端运行可执行文件

How to run an executable on client-side using Node.js?

本文关键字:客户端 运行 可执行文件 js 何使用 Node      更新时间:2023-09-26

是否有方法在客户端调用外部程序并与之"对话"?

例如,如果我有一个Node.js服务器,其中包含AngularJS或任何其他框架,我希望用户按下浏览器上的按钮,客户端上以前安装的程序开始运行,并向客户端发送一些消息。。。

我能做到吗?

如果没有明确的配置,浏览器就无法在本地计算机上运行可执行文件,因为这种行为会违反安全限制。

Node.js可以执行运行环境允许的任何操作(例如用户权限)。请参阅:https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback

考虑使用本机客户端

Native Client是一个沙盒,用于在浏览器中高效、安全地运行编译的C和C++代码,独立于用户的操作系统。Portable Native Client以独立于体系结构的方式扩展了这项技术,允许开发人员一次性编译代码,以便在任何网站和任何体系结构上运行,并进行提前翻译(AOT)。

简言之,Native Client为现代web浏览器带来了本机代码的性能和低级别控制,同时又不牺牲web的安全性和可移植性。

https://developer.chrome.com/native-client

这在许多不同的方面都是可能的。

一种是使用node-webkit。

另一个是名为Edge的NPM包。这有点像节点.net之间的桥梁,或者更具体地说,是节点和clr进程之间的桥梁。您可以在clr进程中执行c#语句和加载程序集,并通过node和Edge在javascript中与之交互。

https://github.com/tjanczuk/edge

我认为更好的方式是使用API REST,例如,您可以在节点JS中创建服务器API,并使用AngularJS在浏览器中使用该服务,并为桌面应用使用JAVA或.NET

下面是一个使用Node和Angular 的简单示例