【问题标题】:Node.js MVC framework [closed]Node.js MVC 框架 [关闭]
【发布时间】:2011-07-12 00:56:16
【问题描述】:

我想使用 Node.js 开发一个网站。我在这里看到了很多框架:https://github.com/joyent/node/wiki/modules#web-frameworks-micro,但不知道哪个是社区最接受的(比方说:最流行的)。有没有人尝试过这些框架和/或在生产中使用它,你的经验是什么?谢谢。

【问题讨论】:

  • 为什么这不是社区维基?

标签: model-view-controller node.js


【解决方案1】:

Express.js 似乎很流行用作通用框架。结合socketio.jsunderscore.js 这些是非常流行的库,但它们不是MVC。

对于 MVC,我只使用了 backbone.js / spine.js 并且无法为其他人提供任何建议。我认为目前还没有一个流行的框架,因为 node.js 在生产中没有太多用处。

在某处带有npm 的热门下载有统计数据。看看你能不能找到它们。

【讨论】:

  • 我很确定你可以使用 Express.js 来构建 MVC 风格的 webapps。你有路线,你有一个视图引擎。控制器和模型只是对象。一切都在那里,您只是缺少 .NET MVC 或 Rails 的约定和工具。
  • @OscarKilhed 是的,您可以,但是您从头开始编写的 MVC 代码将与该网站紧密耦合,并且不能在不同的网站上重复使用。最好将 express 与骨干之类的东西结合使用,以便在标准的网站无关 API 中拥有模型、视图和集合。
  • @Raynos 你的意思是nodecloud.org 网站使用他们的Alexa分数排名?
【解决方案2】:

另一个即将到来的伟大 MVC 框架是 Sails.JS。它的灵感来自 ruby​​ on rails,并具有套接字支持、Restful API 等功能。

http://www.sailsjs.com/

【讨论】:

  • 我已经测试 nodejs 框架已经有 30 天了;)。是的... SailsJS 是我目前的选择。社区每周都在上升,这是积极的。顺便说一句...使用最新的 0.10.x RC 版本,但要准备好文档仍然含糊不清(早期的 Ruby on Rails 也是如此)。另外......我看到谷歌在他们的一项重大活动中使用 SailsJS,这还不错;)。
  • 值得注意的是,SailsJS 发布了他们的官方v1.0.0 26 days ago,因此它显然仍在积极开发中。但是我见过very bad performance ratings from TechEmpower。没有数据库的 SailsJS 运行速度比使用 MySQL 的 Express 慢约 100 倍。
【解决方案3】:

试试 RailwayJS. CompoundJS

RailwayJS 似乎已被杀死并被 CompoundJS 取代。

有一个 guide 供任何刚开始使用铁路并希望迁移到 Compound 的人使用。

【讨论】:

【解决方案4】:

我刚刚发布了Locomotive,这是一个受 Ruby on Rails 启发的 MVC 框架。

Express 非常出色,尤其是对于较小的应用程序。认识到这一点,Locomotive 完全建立在 Express 之上(类似于 Express 建立在 Connect 之上的方式)。 Locomotive 本质上添加了一个控制器层以及一个可以声明资源丰富的路由并生成路由辅助函数的路由器。在内部,一切都由 Express 提供支持,这意味着视图层保持不变,所有中间件都可以重用。

学习 Node 的最大障碍之一是弄清楚如何最好地构建 Web 应用程序。 Locomotive 尝试使用 Ruby on Rails 的约定来解决这个问题,同时保留 Express 和 Node 的全部功能。

【讨论】:

  • 就我个人而言,这正是我想要的抽象级别! +1 机车
  • 感谢 Jared 分享此信息!
【解决方案5】:

matador。它是 MVC,由许多不同的现有组件组成,例如用于继承模型的 Klass、express、hogan.js 和 valentine。 Backbone.js 几乎用于客户端。对于node,我想大概只有我认识的斗牛士了。

如果您要使用 matador 进行生产或替换现有的 MVC 平台(或至少有使用它的瓶颈/充分理由),我建议您不要使用它,因为它非常新,而且您的生产力也取决于在您拥有的 javascript 资源上。我们自己非常广泛地使用 node.js(我们的 node.js 部署迄今为止为近 400 万用户提供服务),并且我们在这里有大量的 javascript 专家..所以我们进行了很多实验,可能很快就会考虑使用 matador。希望对您有所帮助。

【讨论】:

    【解决方案6】:

    Geddy 是 Nodejs 的原始 MVC 框架,如果您有兴趣,请查看 http://geddyjs.org

    【讨论】:

    • +1。比较 Geddy 和其他人在 Github 上的活动。显然,Geddy 有多个长期贡献者,而不仅仅是一次性的错误修复者:github.com/mde/geddy/contributors
    【解决方案7】:

    刚刚遇到一个名为Derby 的新产品,它看起来很有前途。它的主要好处似乎是它减少了我们在尝试使用 rails 和主干或 django 和主干时经常编写的许多“胶水代码”(正如他们所说的那样)。对于节点框架,文档似乎也相当不错。

    【讨论】:

      【解决方案8】:

      Monorail.js - 用于 Node.js 的超轻量级 MVC 框架 https://github.com/runexec/Monorail.js

      【讨论】:

      • 在网站上提到主要开发人员不打算维护它,这可能意味着这个框架远不是最流行的,因此它不完全适合作为答案这个问题。
      • @PelletenCate 的评论非常好! Monorail.js 的最后一次更新是在 2012 年 9 月 19 日完成
      【解决方案9】:

      您可以查看更多框架:

      ThinkJS https://thinkjs.org/ 第一个可以使用完整 ES6/7 功能开发 Node.js 应用程序的 Node.js MVC 框架。

      Feathers http://feathersjs.com/ 一个极简的实时框架。

      流星https://www.meteor.com/

      Keystone.js http://keystonejs.com/ 基于 Express 和 MongoDB(MIT 许可)构建。

      seneca.js http://senecajs.org/ 业务逻辑之外的一切——例如数据库、缓存和第三方集成——都隐藏在微服务后面。

      Catberry http://catberry.org/ 旨在帮助创建在服务器和客户端环境中使用相同代码库的应用程序,以呈现客户端所看到的“单页应用程序”。

      Nuke.js http://nukejs.com/#/ 快速框架。栈包含primus、express、mithril、mongodb和redis

      Hapi.js http://hapijs.com/ Node.js 的富 Web 应用服务器框架。

      total.js https://www.totaljs.com/ 该框架包含完整的 Web 服务器、视图引擎、SMTP 邮件发送器、本地化、图像处理、websockets、同构代码和许多实用程序

      【讨论】: