值得重新设计nodeJS服务器以使用Connect(主要用于everyauth)?

时间:2011-11-14 06:43:27

标签: node.js connect everyauth

在过去的6个月里,我一直在开发自己的nodeJS应用程序,在那里我自己从头开始构建所有内容。我的服务器只做了几件事,因为我的应用程序中的大部分工作都是在前端完成的。

我目前正在实施的一件事是应用程序的用户登录+ facebook身份验证系统。似乎每个auth都是一个比其他任何东西更强大的框架。但是,您需要使用Express或Connect才能使用它。

因此,我正在考虑重新编写代码以使用ConnectJS(主要)用于此目的。也就是说,我真的很喜欢有一个非常简单的服务器,它只能做它需要做的事情,除此之外什么也没做。是否有任何其他用于身份验证的模块与每个身份验证一样健壮,不需要任何人推荐的Connect?

对于那些使用Connect的人来说,它提供的其他功能有多方便?是否值得gzipping服务器返回的数据?静态文件服务器是否更快或者与执行相同操作的常规nodejs代码有什么不同?

我现在真的处于障碍之中,并且非常感谢那些曾经有过使用和不使用Connect编程nodejs应用程序的人的想法。

最佳,
萨米

AMMENDMENT - 如果我的服务器收到的每个请求在某些时候都涉及使用node-mongodb-native驱动程序连接到MongoDB,这是否会改变任何内容?我有点困惑的是,我是否可以基本上拥有我已经编写的代码模块,作为我可以添加到连接的中间件项之一。如果这句话表明我完全误解了连接的作用,我将不胜感激。

2 个答案:

答案 0 :(得分:3)

Connect是一个中间件框架。这意味着所有关于第三方(阅读:你和其他人的)中间件的分离和实现。与直接节点服务器相比,Connect没有开销。

Connect和Express都非常有用。我也一直在与Everyauth合作,我可以说它比单独设置所有OAuth实现(我已经完成)要容易得多。

以下是一些链接:

http://howtonode.org/connect-it

http://tjholowaychuk.com/post/664516126/connect-middleware-for-nodejs

快速指南:http://expressjs.com/guide.html

和类似但不重复的堆叠问题:What is Node.js' Connect, Express and "middleware"?

答案 1 :(得分:1)

如果不了解应用的实施细节及其功能,很难准确评估Connect为您的应用带来的好处,以及进行转换的难度。< / p>

话虽这么说,我强烈建议在开发应用时使用Connect / Express组合。围绕Connect开发了一个健康的中间件生态系统,这使得将所需模块放入应用程序(如日志记录,压缩和身份验证)变得非常容易。随着应用程序的成熟和更多功能的实施,拥有灵活的架构将使其更加顺利地发展。

自从您评估身份验证框架以来,我还要提到我是Passport的开发人员,它是Everyauth的替代方案,旨在更加模块化和不引人注目。 Passport也建立在Connect之上。但是,它被编写为可以在其运行的上下文中进行扩展(默认情况下为Connect),因此应该可以适应其他甚至是本土的框架。