如何在Ruby on Rails的服务器端运行Javascript

我打算用Ruby on Rails编写一个比特币相关的Web应用程序。 现在有一些非常有用的库,像Bitcoinjs或者Bitcore,它们是用Javascript编写的,可以在Webbrowser的客户端运行,或者在Node.js的服务器端运行。 但是,由于我打算用RoR编程这个应用程序,我想知道如何利用服务器端的这些库。 有没有一种方法(即一个gem),允许解释服务器上的JavaScript,或者我可以启动我的RoR代码中的Node.js实例,然后我可以解释这些JavaScript库并执行其function? 任何帮助是极大的赞赏。

由于它像你一样非常坚定地使用这些nodejs库,下面是我将如何去做这件事。 因为在错误的环境下运行代码是一个非常糟糕的主意,所以我会这样做。

前端,ERB模板=> RoR服务器=> nodeJs服务器

这个设置背后的想法是RoR更像是一个任务主,NodeJs是工作者。 你的RoR应用程序会找出需要发生的事情,然后告诉nodeJs这样做。 Nodejs然后会回应RoR将会呈现给用户的结果。

这里是一个例子:
前端有人要求您将x比特币转移给其他人。 然后你的Ruby on Rails应用程序就可以做任何非比特币任务(例如:login,发送消息的人)。 然后你的RoR应用程序会发送一个请求给nodeJs服务器,这个服务器实际上是做比特币任务的。

这是你如何去实现这个设置。

  1. 做前端
  2. 使用您的RoR控制器连接前端操作
  3. 在nodeJs上创build一个RESTful HTTP API。
    1. 如果您还不知道RESTful API是什么,请研究它。 这是一个完全独立的话题
    2. 为您希望应用执行的每个操作创build一个入口点。
    3. 使这个nodeJs服务器运行在本地,所以人们不能通过你的RoR应用程序访问它
  4. 然后使用restful-client之类的东西来使用你的RoR应用程序中的nodeJs API