Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用NodeJS编写实时应用程序_Javascript_Node.js - Fatal编程技术网

Javascript 使用NodeJS编写实时应用程序

Javascript 使用NodeJS编写实时应用程序,javascript,node.js,Javascript,Node.js,我期待着用NodeJS构建RT网络应用程序。来自Rails,我爱上了NodeJS和异步JS编程 在Node上运行一些实验,然后当我搜索工具和资源来使用时,我被那里的很多东西弄得不知所措 我在那里发现了大量的库和组件,对于如何构建一个编写良好并实现良好的大规模RT web应用程序,我感到非常困惑 因此,应用程序将使用Express框架在NodeJS上运行 我读到了knockout.js,这是一个客户端库,提供自动UI刷新等实时功能,我想我可以将它与jQuery结合起来。 另外,我还找到了socke

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

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

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

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

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

有这么多东西,我感到震惊。我应该学什么?哪些模块值得学习? 我主要关注NodeJS和Express,但大多数书籍/屏幕广播都涵盖了NodeJS的旧版本。所以我被它的官方API引导着。 现在我在这里征求你的意见,并以某种方式整理所有的信息。 如果我的假设不准确,请纠正我的错误,请为我指出正确的方向,并自由建议任何其他有助于我学习的模块


提前感谢

将node.js服务器端库(通过npm等)与所有客户端(浏览器)库和技术(如jquery、主干网、knockout等)分开可能会很有用。。。当你想起来的时候。即使是socket.io公开了浏览器和服务器之间的持久套接字连接(以避免轮询),也不会指定您使用的客户端技术

专注于从您的服务器公开一个可靠的web api(),您的客户机技术可以进行交换、增强等。。。对服务器没有影响。它们唯一相交的地方是如果你使用的是像Jade这样的视图技术。这也是一种纯分离的选择,其中服务器只是提供客户机文件,而您的客户机是一个更厚的javascript应用程序(使用knockout、jquery等),调用一个好的服务器web api

有些人试图统一客户机和服务器模型——例如,使用主干网和节点。这取决于您处理的数据量,以确定这是否可行,但它确实会将客户端和服务器耦合起来,并使服务器处于有状态,这可能有缺点(向外扩展,需要关联性等)。就我个人而言,我对这么多的魔法(绑定、状态、同步等)感到警惕。Node是让事情简单、轻松、快速。这是一个快速的前端网络服务器

我的2美分(有些人可能不同意)。从服务器上的节点开始,选择存储(mongoDb等)。设计一个好的webapi,不管客户端是什么。然后从一个基本的html/css/js开始,也许是jquery客户端,然后添加一些东西,比如敲除等等。。。当你扩展你的客户技能时。这将允许您在新技术发生变化时(而且会发生变化)独立于服务器更换客户端技术

这是一个设计良好的系统的标志——能够在不重写任何内容的情况下替换组件/子系统:)


希望这有助于澄清一些迷雾:)

如果你专注于实时Javascript应用程序,你可能想看看Meteor: