给Derby.js或Meteor一个用于authentication生产的应用程序是否已经是值得的了?

我开始阅读关于Derby.js和Meteor的一些关于我正在开发的项目的研究。 它使用了很多实时function,所以它们都很好用。 但是我有一些主要的问题,我想知道在这个时候使用它们是否合理。

  1. 他们还没有准备好生产吗? 还是还有重大的安全问题?
  2. 他们现在是否支持会话和身份validation?
  3. 假设依靠那些做了很多工作的框架,对于简单的东西可能会更容易一些,但是如果它变得更加复杂的话,会更难吗?
  4. 当我使用Express + Socket.io(或express.io)并且我只需要投入更多的时间/工作时,我是否正确地假设我可以达到完全相同的效果(从用户体验的angular度来看)?

目前我更喜欢Express + Socket.io,并认为德比和meteor有点夸张。 你怎么看?

为了更好地了解我的计划:

  • 用户authentication是必要的
  • 复杂的路由是需要的
  • SEO是一个问题
  • 使用Elasticsearch的全文search
  • DB可能是MongoDB
  • 对象之间的复杂关系
  • 实时更新(Socket.io)
  • 安全是一个问题
  • 性能和可伸缩性是问题。

谢谢!

我可以回答你的问题meteor

  1. 是的 。 我们当中有很多人在为创收公司生产meteor。

  2. 是的 。 meteor自2012年10月以来已经有了一个账户系统。

  3. 系统为您做的越多,操纵底层机制就越困难。 我发现meteor有一个合理的平衡。

  4. 这个假设是正确的。 您也可以实现自己的网页浏览器来可视化HTTP,但是我发现使用chrome更容易。

其他需求

  • 用户authentication:是的,见上文。

  • 复杂的路由:是的,看到铁路由器和stream量路由器 。

  • search引擎优化:是的(?),看到蜘蛛和ssr和这个职位 。

  • Elasticsearch:是的,(独立于你的框架select)。 Meteor没有ES后端,但是您当然可以通过node.js模块或直接通过HTTP与ES数据存储进行通信。

  • MongoDB:是的,这是meteor的默认(也是唯一官方)数据库。

  • 复杂的关系:是的,(独立于你的框架select)。

  • 实时更新:是的,这就是meteor的工作原理。

  • 安全是一个问题:是的, 艾米丽·史塔克你覆盖! 另请参阅发现气象博客上的这篇文章 。

  • 性能和可伸缩性:使用oplog-tailing并使用kadira监控您的应用程序。

有meteor的答案,也应该为德比

  1. 是的,从0.6版本开始,德比足够稳定,有一些网站在生产中使用它,例如: 杠杆 。

  2. 是的,有一些authentication模块,例如:使用护照的 德比login

  3. 是的,但更多的模块化框架(包括replace部分),遵循惯例(npm,Express等)越多,感觉就越less。

  4. 是和不是。 例如,如果你认真对待实时,最好有一些冲突解决机制(OT或CRDT或其他),实现一个并不是微不足道的。 顺便说一句,meteor没有,它使用LWW战略。

其他需求

  • 用户authentication:是的,有一些模块。

  • 复杂的路由:是的,同构的快速路由器。

  • search引擎优化:是的,内置的同构(客户端和服务器)模板引擎。 第一个请求的Html在服务器上呈现,以便在客户端呈现后续的URL更改。

  • Elasticsearch:是的,当然。 这不是框架问题。

  • MongoDB:是的,有适配器,这是目前的最佳select。

  • 复杂的关系:是的,不是框架问题。

  • 实时更新:是的,与OT。

  • 安全是一个问题:是的。 从服务器angular度来看,Derby只是Express。 为了确保所有这些实时通信的安全,请使用一些访问控制模块,例如: share-access

  • 性能和可伸缩性:是的,我没有testing,但从理论上来说,比起meteor来说,德比应该是更高效的。 有一种确认 。

meteor呢,我在德比之前使用过。 它有很好的文档,教程,支持和市场营销。 在五分钟内启动一个小应用程序是很好的。 理解这样的概念是很好的:客户端数据库,同构代码,实时等等。但是它非常庞大而且不灵活。 实时实现的方式非常简单,但是缺less解决冲突和性能问题。 它不能以任何明智的方式用于离线。 大多数德比开发者来自meteor。

尝试两个,并作出select。 祝你好运!

我同意@David Weldon的几乎所有答案,只需要考虑几件事情:复杂的关系和可扩展性。

当你说对象之间的复杂关系时,我想知道MongoDB是否是你的正确select。 由于所有数据都存储在文档中, Collections之间的关系越less越好。

就可扩展性而言,如上所述,如果您有一些相当“关系”的集合(MANY-TO-MANY等等),将来可能会遇到严重的可伸缩性问题。

如果你真的这样做,你应该等到meteor正式支持其他RDBMS。