Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在RubyonRails中在服务器端运行Javascript_Javascript_Ruby On Rails_Node.js - Fatal编程技术网

如何在RubyonRails中在服务器端运行Javascript

如何在RubyonRails中在服务器端运行Javascript,javascript,ruby-on-rails,node.js,Javascript,Ruby On Rails,Node.js,我打算用RubyonRails编写一个与比特币相关的Web应用程序。 现在有一些非常有用的库,比如Bitcoinjs或Bitcore,它们是用Javascript编写的,可以在Webbrowser的客户端运行,也可以在Node.js的服务器端运行。然而,由于我打算用RoR编写这个应用程序,我想知道如何利用服务器端的这些库。 是否有一种方法(即gem)允许在服务器上解释Javascript,或者我可以在RoR代码中启动Node.js实例,然后通过该实例解释这些Javascript库并执行其功能?

我打算用RubyonRails编写一个与比特币相关的Web应用程序。 现在有一些非常有用的库,比如Bitcoinjs或Bitcore,它们是用Javascript编写的,可以在Webbrowser的客户端运行,也可以在Node.js的服务器端运行。然而,由于我打算用RoR编写这个应用程序,我想知道如何利用服务器端的这些库。 是否有一种方法(即gem)允许在服务器上解释Javascript,或者我可以在RoR代码中启动Node.js实例,然后通过该实例解释这些Javascript库并执行其功能?
非常感谢您的帮助。

因为您非常有决心使用这些nodejs库,下面是我将如何做的。因为在错误的环境中运行代码是一个非常糟糕的主意,所以我会做这样的设置

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

这种设置背后的想法是RoR更像是一个任务主控器,而nodeJs是工作者。你的RoR应用程序会找出需要发生什么,然后告诉nodeJs去做。然后Nodejs将响应RoR将向用户返回的结果

以下是一个示例:
前端有人要求你的应用程序将x比特币转移给其他人。然后,你的RubyonRails应用程序将执行任何需要的非比特币任务(例如:登录、给人发消息)。然后,您的RoR应用程序将向实际执行比特币任务的nodeJs服务器发送请求。

下面是如何实现此设置

  • 做前端
  • 将前端操作与RoR控制器连接
  • 在nodej上创建一个restfulhttpapi。
  • 如果您还不知道什么是RESTful API,请研究它。这是一个完全不同的话题
  • 为您希望应用程序执行的每个操作创建一个入口点
  • 使此nodeJs服务器在本地运行,以便人们在未通过RoR应用程序的情况下无法访问它
  • 然后使用类似于从RoR应用程序中使用nodeJs API的东西

  • 我不推荐它,试着寻找本机库,而不是在它不适合的环境中运行本机库。这样做通常会导致糟糕的性能。好吧,但除了性能问题之外,是否可能以及如何做到这一点?听起来很合理,但似乎比我预期的要复杂。所以你是对的,也许我不打算使用这些库。(由于缺乏代表分数,无法投票支持你的答案)@user3866773没关系。如果你认为这个答案对你将来的问题有帮助,那就接受吧。