javascript - 使用 NodeJS 编写实时应用程序

标签 javascript node.js

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

用 Node 进行一些实验,然后当我搜索工具和资源以使用时,我被那里的很多东西淹没了。

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

因此应用程序将运行在 NodeJS 上,使用 Express 框架。

我阅读了有关 knockout.js 的内容,这是一个客户端库,可提供自动 UI 刷新等实时功能,我想我可以将它与 jQuery 结合使用。 另外,我找到了 socket.io。 作者说: Socket.IO 旨在让实时应用程序在每个浏览器和移动设备中成为可能,模糊不同传输机制之间的差异。它是 100% 无忧无虑的实时 JavaScript。 所以 socket.io 是关于兼容性的。 backbone.js 怎么样?它去了哪里?

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

提前致谢

最佳答案

将 node.js 服务器端库(通过 npm 等...)与所有客户端(浏览器)库和技术(如 jquery、backbone、knockout 等)分开可能对您很有用...当您想一想。即使是在浏览器和服务器之间公开持久套接字连接(以避免轮询)的 socket.io 也不会规定您使用的客户端技术。

专注于从您的服务器公开可靠的 web-api ( random example ),您的客户端技术可以交换、扩充等...而不会影响服务器。它们唯一相交的地方是您是否正在使用像 Jade 这样的 View 技术。这也是一个纯粹分离的选项,其中服务器只提供客户端文件,而您的客户端是一个更厚的 javascript 应用程序(使用 knockout、jquery 等...)调用一个好的服务器 web api。

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

我的 2 美分(有些人可能不同意)。从服务器上的 Node 开始并选择您的存储(mongoDb 等...)。设计一个solid RESTful (hypermedia) API - 无论客户端如何,一个好的 webapi。然后从基本的 html/css/js 开始,也许是 jquery 客户端,并添加诸如 knockout 之类的东西……当你扩展你的客户端技能时。这将允许您随着新技术风向的变化(它们将会)更换独立于您的服务器的客户端技术。

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

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

关于javascript - 使用 NodeJS 编写实时应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12575474/

相关文章:

javascript - 如何在从根遍历到json树的目标 Node 时插入键?

node.js - 找不到模块 '.tmp/Rx.min.js'

javascript - 将类添加到没有其他特定类的匹配元素

javascript - 如何将数组数组作为一系列变量传递?

javascript - Pacta.js 中 $.when 的代数实现

多个现有构造函数的 JavaScript 通用方法

javascript - 具有名称属性的元素将发送至服务器 : PHP Convention Only?

javascript - jquery 按输入名称查找在 Firefox 中不起作用

node.js - 如何使用 sequelize 获得行的不同值?

javascript - 有没有办法使用 Sequelize 一次将多个嵌入模型保存在数据库中