Node.js MVC框架

32

我想使用Node.js开发一个网站。我在这里看到了很多框架:https://github.com/joyent/node/wiki/modules#web-frameworks-micro,但不知道哪个是社区最受欢迎的(比如说:最流行的)。有人尝试过这些框架中的任何一个并且用于生产中吗?你们的经验如何?谢谢。


为什么这不是社区维基? - SomeShinyObject
9个回答

24

Express.js似乎非常受欢迎,可以作为一般框架使用。与socketio.jsunderscore.js结合使用,这些库非常流行,但它们不是MVC。

就MVC而言,我只用过backbone.js/spine.js,对其他框架无法提供建议。我认为还没有一个主导流行的框架,因为node.js在生产中使用不多。

有关流行下载量的统计数据在某个地方以npm的形式提供。看看能否找到它们。


1
我非常确定你可以使用Express.js构建MVC风格的Web应用程序。你有路由,你有视图引擎。控制器和模型只是对象。一切都在那里,你只是缺少.NET MVC或Rails的约定和工具。 - Oscar Kilhed
1
@OscarKilhed 是的,你可以这样做,但是你从头编写的MVC代码将与该网站紧密耦合,并且无法在不同的网站上重复使用。最好使用Express与类似Backbone的东西结合使用,在标准的网站不可知API中拥有模型、视图和集合。 - Raynos
@Raynos 你是指 http://www.nodecloud.org/ 这个网站吗?它是使用 Alexa 分数对网站进行排名的吗? - davidbourguignon

15
另一个正在兴起的优秀MVC框架是Sails.JS。它受到Ruby on Rails的启发,具有套接字支持、Restful API等特性。

http://www.sailsjs.com/


我已经测试了大约30天的nodejs框架了;)。是的...目前我选择SailsJS。社区每周都在增长,这是积极的。顺便说一下...使用最新的0.10.x RC版本,但要准备好文档仍然很模糊(在Ruby on Rails早期也是如此)。另外...我看到谷歌在其中一个重要活动中使用了SailsJS,这肯定不会有坏处;)。 - xpepermint
值得注意的是,SailsJS在26天前发布了他们的官方v1.0.0版本,因此它显然仍在积极开发中。然而,我已经看到TechEmpower的非常糟糕的性能评级。没有数据库的SailsJS运行速度比使用MySQL的Express慢了约100倍。 - icc97

15
尝试使用CompoundJS,似乎RailwayJS已经被取代了。
对于那些已经开始使用Railway并想迁移到Compound的人,有一个guide可供参考。

1
有没有人对这个有经验,并且知道它与 http://locomotivejs.org/ 相比如何? - davidbourguignon

14

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

Express非常出色,特别适用于小型应用程序。基于此,Locomotive完全建立在Express之上(类似于Express建立在Connect之上)。Locomotive本质上添加了一个控制器层,并带有可以声明资源路由并生成路由助手函数的路由器。内部所有的东西都由Express驱动,这意味着视图层保持不变,所有的中间件都可以被重复使用。

学习Node时遇到的一个大障碍是如何最好地构建Web应用程序。Locomotive试图解决这个问题,使用来自Ruby on Rails的惯例,同时保留了Express和Node的全部功能。


对我个人来说,这正是我想要的抽象层次!+1 for locomotive - badunk
感谢Jared分享这个信息! - davidbourguignon

4

这里介绍一个名为matador的MVC框架,它由许多不同的现有组件构成,例如Klass用于继承模型,express、hogan.js和valentine等。Backbone.js主要用于客户端。至于node,我认为只有matador是我知道的。

如果你要在生产中使用matador或替换你现有的MVC平台(或者至少有一个瓶颈/充分的理由使用它),我建议你不要使用它,因为它相当新,你的生产力还取决于你所拥有的javascript资源。我们自己广泛使用node.js(我们的node.js部署服务于近400万用户迄今为止),在这里我们有大量的javascript专家...所以我们做了很多尝试,可能很快就会考虑使用matador。希望对你有帮助。


3

+1. 比较Geddy和其他项目在Github上的活跃度。显然,Geddy有几位长期贡献者,而不仅仅是一次性的错误修复者:https://github.com/mde/geddy/contributors - artur

2

我刚刚发现了一个叫做Derby的新框架,它看起来非常有前途。它的主要优点似乎是在使用rails和backbone或django和backbone时减少了许多我们经常编写的“粘合代码”(正如他们所说)。这个框架的文档也相当不错。


1

以下是你可以检查的几个框架:

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

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

Meteor 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、等同代码和许多实用工具。

1

2
网站上提到主要开发者不打算维护它,这可能意味着该框架远非最受欢迎的选择,因此它并不完全适合作为这个问题的答案。 - Pelle
@PelletenCate 的评论非常好!Monorail.js 的最后更新日期是2012年9月19日。 - sg7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接