Backbone.js和Node.js有什么区别? 哪个最好?

我感觉有点困惑,Node.js中有这么多框架。 有人能够给我一个Backbone.js和Node.js之间有什么区别的概述吗? 哪个最好? 提前致谢。

我在这里引用了几个来源:

首先,在这里引用堆栈溢出问题:

你列出的大部分东西只是因为它们是用JavaScript编写的或者使用JavaScript而相关的。 比较它们就像比较苹果和橙子。 这就像问丰田凯美瑞和V6发动机有什么不同。 他们是相关的,但做不同的事情。

节点

Node也称为Node.js,Node是运行我们的服务器端JavaScript代码的JavaScript环境。 它基于V8 JavaScript引擎 。 您所编写的所有JavaScript代码,或者从NPM,GitHub等软件包安装并运行的代码都由Node运行时环境执行。

骨干

骨干可以被比作JavaScript的Model-View-Controller框架。 我相信它最初是为浏览器编写的, 它通过实现大多数常见的MVC模式(以及其他一些事情)来帮助保持客户端JavaScript的清洁,使您可以更轻松地将客户端JavaScript连接到服务器端代码。

另外,这是来自Quora同一问题的答案。 信贷去德鲁哈里:

他们几乎完全不相关。 传统上,Backbone.js是一个客户端库,而Node.js是一种在Javascript中编写服务器端应用程序的方法。 Backbone旨在成为一个模型+视图系统,用于将数据模型与DOM元素进行绑定,从而在网页中直观地表示该模型。 Backbone还提供模型集合,以及一系列用于将这些模型与服务器端表示同步的实用函数。

Node.js只是v8 Javascript运行时环境,与标准库一起打包,用Javascript来实现有用的服务器端事物。 有很多为Nodedevise的包(检查npm的方式来轻松地安装这些包,骨干包括),扩展它做各种有趣的事情。 在Node.js中使用Backbone.js是可能的,但Backbone并不是特别devise用在服务器上的。

如果您发现材料有帮助,那么去上面的答案(s)。

几乎所有这些都有共同之处,那就是它们是基于Javascript的,并且围绕着它们进行了大量的炒作(虽然没有错误)。

node.js是Javascript 服务器应用程序的框架。 它包括为Chrome开发的V8 Javascript引擎。 它是asynchronous和事件驱动的,所以它是服务于大量小型请求的理想select。

backbone.js是客户端Web应用程序的框架,专门用于所谓的“单页networking应用程序”,其中一开始只有一个HTML页面被发送到浏览器,并且之后的每个交互都由AJAX请求和Javascript处理逻辑转换页面。

这意味着两者可以一起有效地工作:前端使用backbone.js实现的应用程序可以通过使用node.js来处理由服务器部分处理的AJAX请求 – 这是一个相当stream行的组合,因为它允许您拥有整个Web应用程序只使用Javascript。

Backbone.js是一个JavaScript库,类似于jQuery或YUI,但是解决了不同的需求。

Node.js是一个JavaScript解释器,类似于Internet Explorer或Firefox或Safari,但可以满足不同的需求。

我不太了解backbone.js,但是我相信你可以在Node.js中使用它,因为它使用常规的javascript。 尽pipe你可能需要一个DOM模拟层。


附加答案:

有一点谷歌search显示,有人在那里使用Backbone Node.js。 这样做的好处显而易见,您可以在客户端和服务器上使用相同的框架并重新使用代码。

请参阅: http : //nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product


更多附加答案:

关于语义,我发现有些人不同意计算中的某些术语。 虽然这些术语是松散使用的,虽然它们有些可以互换,但它们的定义却相当明确。

一般来说,解释器是一个可执行文件,也就是一个input一些数据并作为一个程序执行的程序。 V8不是这个。 它不能单独采取JavaScript并运行它。 它需要被编译成另一个程序,一个解释器才能运行javascript。

V8确实附带了示例代码来构build解释器。 V8附带的解释器称为V8-shell。

引擎是一个实现解释器的库。 这正是V8是什么。

上面的两个术语有些可以互换,因为“解释器”这个词也可以有效地用来代替“引擎”来描述一个库的实现。 但是这个词的用法与“MVC框架”或“UI工具箱”的用法类似,因为它被用作形容词。 所以说“翻译”是一种图书馆是正确的。

但是这个词最初是用来表示执行编程语言的二进制文件。 当使用这种方式时,将其用作名词,因为它指的是文件系统上的某些东西。 用这种方式类似于“编译器”的用法。 例如,在这个意义上,可以调用clang编译器,并且可以调用llvmclang使用的库,在前面的意义上是编译器。

让我们来看看不是JavaScript的东西作为一个例子:

  • tcl是一种编程语言

  • tcl也是为tcl实现解释器的库。 换句话说,引擎。

  • tclsh是tcl解释器

我们来看另一个例子:

  • ruby是一种编程语言

  • RubyC是Ruby的许多引擎之一

  • ruby是使用RubyC的解释器

在引用上述两种语言的二进制可执行文件解释器时,没有人使用“框架”一词。 这听起来很愚蠢。

但是等等你说,Node.js指的不仅仅是node.exe。 它确实提供了一些附加function,可以作为编写优秀程序的良好基础。 换句话说就是一个框架。

嗯,是。 这是真的不会使“解释器”这个词的用法引用node.exe自动无效。 正如使用“地球”这个词来指代这个星球不会使用这个词来指土壤自动无效。

此外,那些额外的function? tcl和ruby也是如此。 对于C也是如此。那些额外的function,如Node.js上的fshttp传统上被称为标准库。 而Node.js项目将其称为一个框架,这是他们的select。 几乎没有人把他们的解释器+标准库称为框架。 例如,PHP就像Node.js一样分布在一堆非常高级的标准库中,但是没有人会把PHP称为框架。 人们在节点上编写实际的框架 – 框架框架也是有点愚蠢的。 但我不会说他们错了,因为他们select这样称呼。 这只是他们描述他们创造的东西的方式。 给他们更多的权力。

我所说的是,那些说node.js不是口译员的人在整个计算历史中忽略了这个词的用法。 我不知道。 从亚洲背景来看,我认为一切属于多个类别是很自然的。 也许这是一个西方的想法,事情属于严格的具体类别,我不明白。

所以这里是事实:

  1. Node.js不是简单的JavaScript库。 您需要node.exe来使用节点附带的标准库。

  2. Backbone.js另一方面是一个标准的JavaScript库。 这不是一个可执行文件。

  3. Node.js是目前解释器+库被称为框架的唯一例子。 我在编程中知道的所有其他框架示例都是指实现devise模式的库。

  4. 调用“B”不会自动调用“A”无效。

最后一件事情是:网页浏览器也有一个非常大的JavaScript高级标准库。 它被称为DOM(还有一些像Math和XMLHttpRequest等其他东西,但DOM是最大的)。 因此,应该调用Internet Explorer和Firefox的JavaScript框架,但没有人这样做。

两者都是JavaScript相关,但完全不同。

Node是在服务器(如JDK或Ruby)中执行JavaScript代码的解释器/平台。 简单来说,您需要安装NodeJS来解释服务器上的基于Backbone的脚本。

当涉及到服务器端的MVC,Geddy,RailwayJS,Express等,被认为是比Backbone更好的服务目的。

Backbone是客户端的冠军MVC框架。

Node.js:

Javascript用于后端。 (如:PHP,轨道上的ruby,python等)

Backbone.js:

Javascript的前端(运行在客户端的浏览器)backbone.js也使用jQuery,更多的客户端JavaScript框架是:1.mootools 2.ExtJS 3.dojo 4.原型和更多…

Node.js是指定用于构buildnetworking应用程序的服务器端平台。 它build立在Google的V8 Javascript引擎上,并使用asynchronous事件驱动方法来构build应用程序。 Backbone.js是一个简单的JavaScript客户端库,可以更容易地创build和维护客户端代码,并符合MVC模式。 因此,他们不能比较。

Backbone.js有很多替代方法,使用稍微不同的方法来实现相同的目标。 最知名的是: 淘汰赛 , ember.js和其他人。 它也可以插入到node.js应用程序中。