我目前正在开发 Nuxt.JS SPA。其中一项功能是从云存储上传、下载和删除文件。我已经使用 Google 的 Firebase 产品和 API 成功完成了此操作,因为 Google 在 Node.JS 中拥有它。
现在我必须将存储更改为 Ceph 存储。问题是,我必须使用 Ceph 的对象网关 S3 API 来完成此操作。但是,Ceph 在 JS、Node.JS 等中没有这个功能。我可以使用 Python 来实现它们,并且我已经创建了可以做到这一点的 Python 脚本。
现在,我必须以某种方式从我的 SPA 调用这些 Python 脚本,并在单击按钮时运行它们。我知道可以使用 child_process 或 NPM 模块(例如使用 child_process 的 python-shell)从 Node.JS 或 Javascript 调用 python 脚本,这样的东西对我来说是理想的选择。
问题是,因为它是 SPA 并且主要是客户端,所以我无法使用子进程,因为它显然是服务器端的(我已经尝试过它们,但我不断收到“无法解析 child_process”错误)。因此,另一个问题( How to call a Python function from Node.js )中提供的解决方案对我不起作用。
除了使用 AWS Lambda 或类似解决方案之外,我还可以尝试解决此问题吗?还有其他替代方案或解决方案吗?或者我只是毫无意义地用头撞墙?
我是 Node.JS、Nuxt 等方面的新手,所以如果我写了一些无意义的东西,我很抱歉。
最佳答案
您需要为您的 python 脚本创建一个 http(最简单)api。
因此,您的 SPA 会将 http 请求发送到您的 python 脚本,然后 python 脚本完成工作。是的,您需要某种服务器或 lambda 或其他任何东西来实现此目的。
关于javascript - 如何从 Nuxt.js SPA 运行 Python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53947241/