如何实现 Ruby 和 Nodejs 通信

Python013

如何实现 Ruby 和 Nodejs 通信,第1张

一种方法是直接在Ruby里跑命令行node app.js arg1 arg2,但略挫了点,而且Nodejs的代码里是有数据库/redis连接的,每次重新连接,是不是会造成额外的开销?

另一种方法是通过Unix Domain Socket

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。

Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。

Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

扩展资料:

Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。

该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。尤其是对于熟悉onmouseover、onclick等DOM事件的用户,更有一种似曾相识的感觉。

Google JS Runtime 非常快

nodejs 默认 async(异步),有些时候快一些

适合 one page app (比如gmail那样的)我觉得的是更适合ajax所以才这样

语言统一,不用前后台换来换去,都是javascript(有人不喜欢javascript,可以学 coffee script),同时和mongodb结合比较好(相比SQL)。现在有一个MEAN stack: mongodb, express, angular and nodejs,貌似学好了很厉害。

Ruby on Rails优势

成熟,gem很好很多很全(不过nodejs现在用的人越来越多了)

会的人比较多(至少再美国)

学起来相对比nodejs要容易。nodejs的 abstraction(抽象?)比RoR少,还涉及到 callbacks(因为是异步)

移动端可能要求ajax多一些(如果你不做 native app),这个主要是前台设计(个人认为)。如果是点评网站的话,我觉得可能 Ruby on Rails 还是更合适一些。