有node.js和mongodb的整个网站?

时间:2011-05-05 22:14:20

标签: node.js mongodb socket.io

我使用PHP和mySQL作为后端构建了几个网站,并且相信我对两者都非常熟悉。然而,在我的新网站的研究中,我遇到了node.js和mongodb(以及socket.io,因为该网站将包含聊天)。

我决定使用node.js和mongodb来运行聊天 - 但不知道我是否应该用这两件事做整个网站? 既然我要运行一个节点服务器,我应该运行另一个(单独的)托管网站吗?或者这是一个坏主意? - 它稳定吗? 我可以在PHP中进行编程并仍然使用mongodb - 但节点不会更快吗?

另一个问题: 我打算使用ajax来处理页面的所有帖子 - 但是因为我已经在聊天中使用了socket.io - 我应该使用它来做我所有的帖子请求吗? 对于ajax,我计划使用jQuery(也适用于所有前端效果)。

4 个答案:

答案 0 :(得分:15)

  

不知道我是否应该这样做   整个网站有这两件事吗?

如果你想学习node.js,那么没有比编码更好的了。

  

因为我要运行一个节点服务器   无论如何我应该跑另一个   (单独)一个托管网站?

您可以使用现有服务器并在其他自由端口(o)上运行node.js app。我认为对于学习节点,您不需要专用机器。

  

稳定吗?

甚至node.js的版本都是稳定版本,但是在1.0版本中有功能冻结之前,可能会对其API进行重大更改。

  

我可以用PHP编程   仍在使用mongodb - 但不会   节点要快一点吗?

很可能(肯定)会。

  

我打算用ajax来处理所有问题   页面上的帖子 - 但是因为我   allready使用socket.io进行聊天 -   我应该使用我的所有发布请求吗?   是什么?

我建议坚持使用MVC模型并使用express,因为如果你将socket.io用于经典的东西,你会遇到很多耗时的麻烦。 Socket.io就是用于实时功能和与之相关的事情。

答案 1 :(得分:12)

node.js已经有一些可靠的Web框架,特别是Express。这是一篇非常好的文章,概述了构建node.js网站的一些经验和教训:

What it’s like building a real website in Node.js

关于你的第二个问题,最好使用AJAX处理程序和HTTP与jQuery。我不确定jQuery是否支持基于原始TCP套接字的回调。

答案 2 :(得分:9)

node.js + express + jade + stylus + jQuery是我首选的环境。

使用forever自动重启服务器即使我有定期崩溃服务器的错误,我也从来没有遇到任何实际的正常运行时间问题。

至于socket.io + jQuery,它们相处得很好,但它不如express + jQuery组合那么自然。我坚持为大多数事情做ajax调用。

答案 3 :(得分:3)

Node.JS仍然可以像一个狂野的西部,但它的改进。这是一个与php编码完全不同的模型,但它非常适合很多网站。您可能希望使用BackBone.js之类的胖客户端来执行瘦服务器(公开REST API和您的websocket端点)以保持交互清洁。

在节点中完成整个事情的最大胜利是你不会在php和js之间重复代码来处理数据库或两者所需的任何其他服务。 Node.JS在处理数吨和大量并发请求方面也非常出色。

祝你好运