[英]Azure Functions call a binary executable, stream standard output to response (e.g. child_process.spawn for node.js)
[英]Is it bad practice to let Node.js talk to a REPL child process?
我有一个Node.js进程,该进程生成一个子REPL进程。 该子进程使用C#语言,并且能够动态加载DLL文件。 我使用方法或有时使用Proxy()将输入发送到REPL。 REPL的标准输出发送回我的对象,然后使用通用的obj.on(data,function)实现捕获。 当我在对象上调用方法时,它将把它传递给子进程stdin。
所有这一切都像一个魅力,我可以加载任何.NET或第三方程序集并将其类型和方法公开给Node。 尽管非常有效,但以这种方式本能地感觉非常丑陋。
除了Windows之外,它不必运行其他平台。
这是“坏习惯”吗? 如果是这样,为什么会这样呢? 这有什么不好? 您会如何做得更好?
编辑:我不是在寻找替代方法,但我想回答我现在大胆提出的问题。
如果您需要在任一方向上在节点和.NET之间进行互操作,则可以使用edge.js项目,这可能是您正在寻找的东西。 当前可以从节点访问CLR的是跨平台的(Windows,Linux,OS X)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.