与所有Node JS框架/库等混淆

JMM*_*JMM 20 node.js coffeescript express backbone.js

我感到有点困惑,有很多框架与Node.js相关的'东西'.有人能够给我一个概述 - 以下图书馆/框架/其他相关/互动的方式 - 包含什么或主要目的是什么? - 他们之间的差异

此外,如果还有其他我已经离开我的列表,请随意添加它们以及它们是什么以及它们如何适合的描述.

  • 节点
  • CoffeeScript的
  • 骨干
  • 表达

Mic*_*ley 22

您列出的大多数内容仅仅因为它们是以书面形式使用或以其他方式使用JavaScript而相关.比较它们就像比较苹果和橙子.这就像问丰田凯美瑞和V6发动机有什么区别.他们是相关的,但做不同的事情.

节点

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

CoffeeScript的

CoffeeScript简单明了,是一种可编译为JavaScript的编程语言.其目的是以更简单的方式公开JavaScript的所有功能.重要的是要记住,所有CoffeeScript代码在运行时都会被编译为JavaScript; 差异纯粹是语法上的.它的网站有更多的信息.

骨干

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

表达

Express是基于Connect构建的Node.js的Web框架.它在许多方面类似于Sinatra for Ruby.它允许您轻松创建包含路由,布局/部分/视图,会话等的网站.Express中有许多第三方模块,因此很容易获得所需的堆栈类型.


Node有很多模块; 在撰写本文时,NPM已发布超过3,000个包,即使是最受欢迎的包也需要花费一些时间!每当你需要解决一个新问题时,一定要给NPM或模块列表页面看看,以避免发明轮子(除非你想学习很多关于轮子的东西.:)

  • @Annie节点执行IO.它不做网络.Web框架处理路由,它处理服务静态内容,它处理日志记录,它处理视图的概念和渲染视图引擎.它处理会话,它处理cookie.它在POST上解析HTTP正文.节点中没有`$ _GET`或`$ _POST`.基本上节点比你习惯的任何东西都要低得多.Web框架会将您认为理所当然的事情做好. (2认同)
  • @Annie在这种情况下,Express只是[Connect](http://senchalabs.github.com/connect/)上的一个薄层; 虽然你可以自由地在它上面实现MVC,但它并没有将自己与MVC模式联系起来.其他Web框架,如[Geddy](http://geddyjs.org/),自己实现MVC部分(类似于Ruby on Rails). (2认同)