【问题标题】:Nodejs and socket.io, is it pure javascript?Nodejs和socket.io,是纯javascript吗?
【发布时间】:2011-09-08 16:11:11
【问题描述】:

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

是纯 JavaScript 还是我必须学习 JQuery 或 MOntools 之类的框架?

谢谢!

【问题讨论】:

  • Mootools, Jquery 都是纯javascript

标签: javascript linux


【解决方案1】:

node.js 是纯 JavaScript。

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

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

几个值得学习的库是

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

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

  • now websocket 库

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

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

  • underscore 让生活更轻松的通用实用程序

一个很棒的实用程序库,可让您以函数式样式编写代码(例如 python 或 ruby​​)。这是强烈推荐的,尽管大部分特性已经是 ES5 的一部分。在客户端使用这个来模拟 ES5 也是一个很大的优势

  • backbone 集合和模型(MVC 的另一半)

Backbone 是一个轻量级的 MVC 抽象。这允许您使用更常见的 MVC 构造。对于 node.js 本身,我建议使用 Backbone.ModelBackbone.Collection 并使用 express 处理视图渲染(但使用来自集合和模型的数据填充视图)。您还可以轻松覆盖 Backbone.Sync 以与您选择的数据库抽象进行交互,这实际上将 Backbone 变成了 ORM。一个可靠的选择是Spine

Futures 为您提供了一个 Promise API。这对于编写可管理的可读代码非常有用。它还阻止您嵌套 5 层深度的回调。图书馆本身很丰富。它还为按顺序运行异步回调以及在最后与回调处理程序并行运行它们提供了很好的抽象。

3 个月后

做了几个项目后,我还是推荐express。但是。

不推荐

  • 现在。为什么?它妨碍了它,它会泄漏。请改用socket.io
  • 摇篮。为什么?它有边缘案例错误,调试起来简直就是噩梦,请改用 request。
  • 下划线。为什么?只是不需要。 ES5 的表现力足够了
  • 主干/脊椎。为什么?漏了,碍事了。它不是为服务器设计的
  • 期货。为什么?太矫枉过正了。你不需要它。请改用after
  • 快速控制器。这是一个泄漏的抽象,它不起作用。

我会推荐的东西。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • jQuery 不是一个框架。 node.js 是一个推动框架。 (它们是图书馆)。 “他们所有人..都必须学习”。绝对没有理由同时学习 MooTools 或 jQuery。
    • @Raynos,真的,出于某种原因,我在这里模仿提问者对framework 的使用。这些确实是图书馆,答案相应更新。谢谢:)
    • 你仍然不应该建议他同时学习 jQuery MooTools(这简直是愚蠢的)
    • @Raynos,我并不是建议他这样做,那确实很愚蠢:) 我只是指出,除了核心 Javascript 语言之外,提问者还必须学习 API为了使用它们中的任何。我的句子是不是结构如此薄弱以至于不明显? :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 2018-04-16
    • 2015-03-19
    • 2012-01-29
    • 1970-01-01
    相关资源
    最近更新 更多