让Node.js与REPL子进程通信是不好的做法吗?

时间:2016-06-12 21:13:29

标签: c# node.js read-eval-print-loop

我有一个Node.js进程,它生成一个子REPL进程。这个子进程说C#并能够动态加载DLL文件。我使用任一种方法或有时使用Proxy()将输入发送到REPL。 REPL的stdout被发送回我的对象​​,然后使用常见的obj.on(数据,函数)实现来捕获。当我在对象上调用一个方法时,它会将它传递给子进程stdin。

这一切都像魅力,我可以加载任何.NET或第三方程序集,并将其类型和方法暴露给Node。虽然非常有效,但就这样本能地感觉非常难看。

除了Windows之外,它不必使用其他平台。

这是不良做法'?如果是这样,为什么会这样呢?有什么不好的?你会怎样做得更好?

编辑:我不是在寻找另一种方式,但我想回答一下我现在大胆的问题。

1 个答案:

答案 0 :(得分:0)

如果您需要在任一方向上在节点和.NET之间进行互操作,那么就会有edge.js项目,这可能是您正在寻找的东西。目前,从节点访问CLR是跨平台的(Windows,Linux,OS X)。