6

我期待使用 NodeJS 构建 RT Web 应用程序。来自 Rails,我爱上了 NodeJS 和 Async JS 编程。

用 Node 做一些实验,然后当我搜索工具和资源来使用时,我被那里的很多东西弄得不知所措。

我在那里发现了很多库和组件,并且对如何构建一个编写良好且实施良好的大型 RT Web 应用程序感到非常困惑。

所以应用程序将NodeJS使用Express框架运行。

我读到了knockout.js,一个提供实时东西的客户端库,比如自动 UI 刷新,我想我可以将它与 jQuery 结合使用。另外,我发现socket.io. 作者说: Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realtime 100% in JavaScript. 所以socket.io是关于兼容性的。怎么样backbone.js?它要去哪里?

有这么多东西,我震惊了。我应该学习什么?哪些模块值得学习?我专注于 NodeJS 和 Express,但大多数书籍/截屏视频都涵盖了旧版本的 nodejs。所以我受到其官方 API 的指导。现在我在这里征求你的意见,并以某种方式组织所有的信息。如果我的假设不准确,请纠正我,请指出正确的方向,并随时提出任何其他有助于我学习的模块。

提前致谢

4

2 回答 2

7

将 node.js 服务器端库(通过 npm 等)与所有客户端(浏览器)库和技术(如 jquery、主干、淘汰赛等)分开可能对您很有用......当您考虑时. 即使是在浏览器和服务器之间公开持久套接字连接(以避免轮询)的 socket.io 也没有规定您使用什么客户端技术。

专注于从您的服务器公开一个可靠的 web-api(随机示例),并且您的客户端技术可以交换、增强等......对服务器没有影响。它们相交的唯一地方是如果您使用像 Jade 这样的视图技术。在服务器只是提供客户端文件的情况下,您的客户端是一个更厚的 javascript 应用程序(使用敲除、jquery 等)调用一个好的服务器 web api,这也是一个纯分离的选项。

有些人试图统一客户端和服务器模型——例如,本文使用骨干网和节点。这取决于您使用多少数据来说明这是否可行,但它确实耦合了客户端和服务器并使服务器有状态,这可能有缺点(横向扩展,需要亲和力等......)。就个人而言,我对这么多魔法(绑定、状态、同步等)保持警惕。Node 致力于让事情变得简单、轻便和快速。它是一个快速的前端网络服务器。

我的 2 美分(有些人可能不同意)。从服务器上的节点开始并选择您的存储(mongoDb 等...)。设计一个可靠的 RESTful(超媒体)API - 无论客户端如何,都是一个好的 webapi。然后从一个基本的 html/css/js 开始,也许是 jquery 客户端,并在扩展客户端技能时添加诸如淘汰赛等内容。这将允许您随着新技术风向的变化(而且它们会)更换独立于服务器的客户端技术。

这是一个设计良好的系统的标志 - 无需重写所有内容即可替换组件/子系统的能力:)

希望这有助于消除一些迷雾:)

于 2012-09-25T02:41:22.923 回答
0

如果您专注于实时 Javascript 应用程序,您可能想看看 Meteor:http: //meteor.com/

于 2013-06-28T04:01:39.413 回答