Node.js到Python通信-服务器还是子进程?

Node.js到Python通信-服务器还是子进程?,python,node.js,client-server,ipc,Python,Node.js,Client Server,Ipc,我目前在一个主要用Node.js编写的项目中,该项目涉及非线性曲线拟合。在尝试使用Node.js本身完成这项任务后,我放弃了它,因为它根本不切实际。所以我在寻找一种高级语言来解决我所面临的数学问题。我不得不在MATLAB和Python之间做出选择,但由于Python现在已经有了非常强大的方法,而且是免费的,所以我决定使用Python 现在我需要找到一种在Node.js和Python之间通信的方法,我已经找到了两种完全不同的方法: 设置Python服务器,以解决所述的数学问题 或者从my node

我目前在一个主要用Node.js编写的项目中,该项目涉及非线性曲线拟合。在尝试使用Node.js本身完成这项任务后,我放弃了它,因为它根本不切实际。所以我在寻找一种高级语言来解决我所面临的数学问题。我不得不在MATLAB和Python之间做出选择,但由于Python现在已经有了非常强大的方法,而且是免费的,所以我决定使用Python

现在我需要找到一种在Node.js和Python之间通信的方法,我已经找到了两种完全不同的方法:

  • 设置Python服务器,以解决所述的数学问题
  • 或者从my node.js代码生成一个子进程,如下所述
  • 现在我通常使用客户机-服务器方法,因为我认为它更干净,因为它将两种语言分开。但既然有人在写关于第二种方法的博客文章,它肯定有一些优势,对吗


    有人能简要解释一下这两种方法的优缺点吗?

    两种方法都有优缺点

    独立服务器 设置服务器更耗时,您需要确保在节点应用程序需要与它对话之前启动Python服务器,如果它停止,您必须重新启动它,等等

    另一方面,你有一个很好分离的服务,可以被其他应用程序使用,如果你需要更高的性能,可以很容易地移动到一个单独的框或一组框中

    产生一个进程 生成一个进程要比运行一个单独的服务器容易得多,您总是知道它在需要时运行。您不必使用启动脚本、重新启动等来管理单独的服务器

    另一方面,您被限制在与节点程序相同的机器上运行Python程序,如果性能有问题,则必须将其作为单独的服务器,以便能够在不同的机器或一组机器上运行

    选择 选择实际上取决于您对未来使用情况和服务器负载的期望。这两种方法都会奏效,而且都有不同的强项和弱项

    抽象 在任何情况下,以模块的形式抽象出该选择都可能是有用的,这样您的主代码就不需要知道您做出了哪些选择。这意味着你将来可以改变主意

    制作模块非常简单,只需将相关代码放在一个单独的
    .js
    文件中,并从主代码中获取该文件即可。该模块可以导出一个或多个接受回调或返回承诺的函数,只要回调被调用或承诺被预期数据解析,主代码就不需要知道在后台发生了什么