首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对周围的所有Node JS框架/库等感到困惑

对周围的所有Node JS框架/库等感到困惑
EN

Stack Overflow用户
提问于 2011-08-19 10:28:17
回答 2查看 5.8K关注 0票数 20

我感到有点困惑,有太多的Node.js相关“东西”的框架。谁能给我一个概述-下面的库/框架/任何东西是如何相互联系/交互的-它们包含了什么,它们各自的主要用途是什么?它们之间的区别

此外,如果我在列表中遗漏了任何其他内容,请随时添加它们,并描述它们是什么以及它们是如何适应的。

  • Node
  • Coffeescript
  • Backbone
  • Express
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-19 10:45:14

您列出的大多数内容之所以相关,只是因为它们是用JavaScript编写或使用的。比较它们就像比较苹果和橙子一样。这就像在问丰田凯美瑞和V6发动机有什么不同。它们是相关的,但做的是不同的事情。

节点

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

CoffeeScript

简单明了地说,CoffeeScript是一种编译成JavaScript的编程语言。它的目的是以一种更简单的方式公开JavaScript的所有功能。重要的是要记住,当您运行JavaScript时,所有的CoffeeScript代码都会被编译成just;区别纯粹是语法上的。它的网站上有更多信息。

Backbone

可以将Backbone比作JavaScript的Model-View-Controller框架。我相信它最初是为浏览器编写的;它通过实现大多数常见的MVC模式(以及其他一些东西)来帮助保持客户端JavaScript的整洁,从而允许您将客户端JavaScript more easily connect到服务器端代码。

Express

Express是一个基于Connect的Node.js web框架。它在很多方面都类似于Ruby的Sinatra。它允许您轻松创建具有路由、布局/部分/视图、会话等功能的网站。Express有很多第三方模块,因此很容易获得所需的堆栈。

Node有大量的模块;在撰写本文时,NPM已经发布了3000多个包,即使是最受欢迎的包也需要一些时间!任何时候你需要解决一个新的问题,避免发明轮子(除非你想学习更多关于轮子的知识),一定要给NPM或module list page看一看。:)

票数 22
EN

Stack Overflow用户

发布于 2011-08-19 19:31:32

使用node.js,你只需要选择一个框架。对于框架来说,一些流行的框架是

我只用过express,我可以保证它很棒。它有一个很棒的社区和极好的支持。它也是我所知道的唯一能正常工作的库,这说明了很多问题。

除此之外,节点社区使用优化模块来解决一个问题,当他们需要解决该问题时。框架应该处理处理HTTP请求的最小问题,express解决了这一问题。

下面是一个来自package.json的except文件。

代码语言:javascript
复制
"dependencies": {
    // my framework, used to handle HTTP
    "express": "2.4.4",
    // a very specific validation module used for input validation
    "validator": "0.2.7",
    // dust a templating engine
    "dust": "0.3.0",
    // a uuid factory
    "node-uuid": "1.2.0",
    // a markdown parser
    "marked": "0.0.4",
    // a HTTP request library
    "request": "2.0.3",
    // a traits (OOP) library
    "traits": "0.4.0",
    // a file tree watcher
    "watch": "0.3.2",
    // a CSS abstraction
    "less": "1.1.4",
    // a flow control library
    "after": "0.1.0",
    // a utility to extend Buffer
    "buffertools": "1.0.3"
},
"devDependencies": {
    // a unit testing library
    "vows-fluent": "0.1.0",
    // a unit testing utility
    "should": "0.2.1",
    // hot code reloading
    "nodemon": "0.5.3",
    // debugger
    "node-inspector": "0.1.9"
}

正如您所看到的,我使用一个框架和一系列手动选择的实用程序库来解决一个任务。对于其他任务,我推出了我自己的(上面列出的一些库是我自己的)。

例如,我曾经推荐backbone作为一个可靠的MVC库,但它不能与node一起工作。因此,我推出了自己的MVC抽象。我也曾经推荐cradle作为一个可靠的CouchDB抽象,但它泄露了,所以我放弃了,使用request编写了自己的数据库访问代码来与CouchDB对话。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7116332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档