我打算使用 Ruby on Rails 编写一个与比特币相关的 Web 应用程序。 现在有一些非常有用的库,例如 Bitcoinjs 或 Bitcore,它们是用 Javascript 编写的,可以在 Web 浏览器的客户端上运行,也可以在 Node.js 的服务器端运行。但是,由于我打算使用 RoR 对该应用程序进行编程,因此我想知道如何在服务器端利用这些库。 有没有一种方法(即 gem)允许在服务器上解释 Javascript,或者我可以在 RoR 代码中启动 Node.js 实例,然后我可以通过它解释这些 javascript 库并执行它们的函数吗? 非常感谢任何帮助。
最佳答案
由于看起来您非常决心使用这些 Nodejs 库,因此我将按照以下方式进行操作。由于在错误的环境中运行代码是一个非常糟糕的主意,因此我会进行这样的设置。
前端,ERB 模板 => Rails 服务器 => nodeJs 服务器
这种设置背后的想法是,Rails 更像是任务主控器,而 NodeJs 是工作器。你的 Rails 应用程序会弄清楚需要发生什么,然后告诉 NodeJs 去做。然后 Nodejs 将响应结果,Rails 将结果呈现给用户。
这里是一个例子:
前端有人要求你的应用程序将 x 比特币转移给其他人。然后,您的 Ruby on Rails 应用程序将执行所需的任何非比特币任务(例如:登录、向人们发送消息)。然后,您的 Rails 应用程序将向 NodeJs 服务器发送请求,该服务器实际上会执行比特币任务。
以下是您如何实现此设置。
- 制作前端
- 将前端操作与 Rails Controller 连接
- 在您的 NodeJ 上创建 RESTful HTTP API。
- 如果您还不知道什么是 RESTful API,请研究一下。这是一个完全独立的主题
- 为您希望应用执行的每个操作创建一个入口点。
- 让这个nodeJs服务器在本地运行,这样人们就无法在不通过您的Rails应用程序的情况下访问它
- 然后使用类似 restful-client 的内容从 Rails 应用程序中使用 NodeJs API
关于javascript - 如何在 Ruby on Rails 中的服务器端运行 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25110040/