Nodejs和socket.io,是纯粹的javascript吗?

时间:2011-06-05 09:03:16

标签: javascript linux

我开始使用nodejs和socket.io ...

它是纯粹的javascript还是我必须学习像JQuery或MOntools这样的框架?

谢谢!

2 个答案:

答案 0 :(得分:18)

node.js是纯粹的javascript。

是的,您确实需要学习node.js,因为它是您的服务器端IO库。并且您不需要为服务器端开发学习jQuery或MooTools。

在node.js社区中,非常强调使用第三方库来实现您的目标。目前没有为节点设置框架。

有几个值得学习的图书馆

  • express 路由,视图引擎和控制器(MVC的一半)

Express是一个轻量级的MVC库,它构建在connect的顶部。这使您可以访问路由库和视图引擎。当与EJSJade结合使用时,它将允许您设置node.js代码以单独处理传入路由并从模板呈现数据。我还建议查看express-controllers,这是处理网址的REST样式路由的好方法。

  • now websocket库

现在是socket.io的顶层抽象。它在客户端和服务器之间提供“共享”命名空间。这使RPC变得微不足道。只需将一个函数声明为服务器上的now属性,然后从客户端调用它。现在为您处理所有socket.io通信。

Cradle是一种抽象,允许您与couchdb进行交互。如果您要使用节点,我建议您使用NoSQL数据库,如沙发或mongodb(如果您使用的是mongo,请尝试mongoose)。

一个很棒的实用程序库,允许您以函数样式编写代码(想想python或ruby)。尽管大多数功能已经是ES5的一部分,但强烈建议这样做。在客户端上使用它来模拟ES5也是一个很大的优势

  • backbone 收藏品和模型(MVC的另一半)

Backbone是一个轻量级的MVC抽象。这允许您使用更常见的MVC构造。对于node.js本身,我建议使用Backbone.ModelBackbone.Collection并快速处理视图呈现(但使用集合和模型中的数据填充视图)。您还可以轻松覆盖Backbone.Sync以与您选择的数据库抽象进行交互,从而将Backbone虚拟化为ORM。一个可靠的替代方案是Spine

Futures为您提供promises API。这非常适合编写可管理的可读代码。它还可以阻止您将5层深度的回调嵌套。图书馆本身就很广泛。它还为顺序运行异步回调提供了很好的抽象,并且在最后与回调处理程序并行运行它们。

3个月后

完成一些项目后,我仍然建议快递。然而。

我不推荐

  • 现在。为什么?它会挡路,它会泄漏。请改用socket.io
  • 摇篮。为什么?它有边缘案例错误,这是调试的噩梦,而不是使用请求。
  • 下划线。为什么?它只是不需要。 ES5很有表现力
  • 骨干/脊骨。为什么?它泄漏了,它会阻碍它。它不是为服务器而设计的
  • 期货。为什么?这太过分了。你不需要它。请改用after
  • 明示控制器。这是一个漏洞的抽象,它不起作用。

我会推荐的东西。

答案 1 :(得分:5)

jQuery,MooTools和Node.js都是“纯粹的”Javascript,如果这就是你所要求的。但是,它们都是库,您确实必须学习它们的API。

您可以找到Node.js here的文档。