Node.js是构build完整网站的好select吗?

我想知道是否使用Node.js(express.js)是一个完整的网站的最佳select。 我一直在使用Rails + Node.js,想知道如果这仍然是最好的select,或者如果我应该完全移动到Node.js。

有没有完全用node.js构build的网站? 我想,它必须缺乏Rails提供的许多东西。

Express.js更类似于Sinatra。 他们比rails更简单的框架。

Express的网站列表相当小http://expressjs.com/applications.html

所以我觉得看看Sinatra的名单http://www.sinatrarb.com/wild.html也不错

所以要以相反的顺序回答你的问题。 是的,它缺乏导轨的所有function。 是的,有网站完全使用Express。 去100%的Node.js可能是您的网站的正确决定。

这取决于你会错过哪些function以及需要什么性能。

我想,它必须缺乏Rails提供的许多东西。

我在下面给出了一个简短的列表,但我想知道你可能会错过什么,我想(几乎可以肯定),我们可以给你node.js上的一些替代品。


模块

node.js变得相当完整,我想你可以使用node.js来运行整个站点,例如使用下面的模块。 我假设你知道npm 。 如果不是,我真的build议你到谷歌和学习。 要searchnpm,你可以使用http://search.npmjs.org

网页框架:

  1. Node.js的高性能,高级Web开发
    https://github.com/visionmedia/express

  2. Socket.IO旨在使每个浏览器和移动设备上的实时应用程序成为可能,模糊了不同传输机制之间的差异。 https://github.com/learnboost/socket.io-node

我相信在这两个网页框架中,你可以创build很多网站。 例如,express是一个非常强大的web框架,支持很多很酷的东西,比如:

  • 会话支持。
  • 很多强大的模板引擎 。 我喜欢翡翠。 您也可以很容易地在客户端和服务器之间共享这些信息。
  • 优秀的路由 。

仅举几个。

数据库:

  1. Redis是一个开源的高级键值存储。 它通常被称为数据结构服务器,因为密钥可以包含string,散列,列表,集合和有序集合。
    https://github.com/mranney/node_redis

  2. MongoDB(来自“humongous”)是一个可扩展的,高性能的,开源的,面向文档的数据库。 Mongoose是一个MongoDB对象build模工具,devise用于在asynchronous环境中工作。
    https://github.com/learnboost/mongoose/

有了这两个数据库,我认为你应该能够完成大部分任务。 好的是,Redis是非常快速/简单的高级KV-store(内存中的数据集/也支持VM),并支持复制,而Mongodb更完全(更慢,然后redis),也支持分片。

authentication:

  1. authentication和授权(密码,脸谱,等等)为您的Node.js Connect和Express应用程序。
    https://github.com/bnoguchi/everyauth

就像我之前所说的,只有这些模块才可以获得很长的路要走。

我不确定,但我想这完全有可能。 我已经build立了完整的网站使用纯服务器端JavaScript多年没有问题。 node.js的好处似乎是它的事件驱动模型和诸如socket.io的东西。 我刚开始尝试,我可能会尝试将现有的站点移植到node.js.

在这里,您可以find使用node.js构build的大量网站列表 。

最后,您可能想要阅读: 在Node.js中构build真正的网站是什么样的

是的,从现在开始,node.js缺less很多(至less有一些)轨道提供的东西。 最终,可用的node.js模块集合将为RoR提供更好的替代scheme。 或者至less对于相同的基本问题采取不同的(也是更现代的)方法。 在node.js生态系统中还有一些重要的东西,包括postgresql的良好ORM(rails有ActiveRecord,这很棒)和一个好的DB模式pipe理子系统。 到目前为止,这两者在node.js生态系统中都不存在,但肯定会在适当的时候在那里。 Rails现在有这些下来。

有一些技巧node.js有RoR没有。 在node.js中debugging比RoR和express.js更加灵活。 Express是库方法(你告诉它做什么),而rails是框架方法(你填写它为你创build的样板)。 还有一些梦幻般的东西,如手写笔和玉石,它们在轨道上有等价物,但是当你用一种语言(javascript或CoffeeScript,我更喜欢)编写完整的应用程序时,一切都在一个现代的node.js / TJ Holowaychuck风格,你会得到一定程度的凝聚力,真的很好的工作。

另外要记住的是,虽然可用的node.js模块列表相当令人印象深刻,但其中许多模块并不像rails / django模拟器那样成熟和经过testing。 它碰上或错过,所以要小心。