30

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

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

还有一个问题:我计划使用 ajax 来处理页面上的所有帖子——但由于我已经使用 socket.io 进行聊天——我应该使用它来完成我的所有帖子请求吗?对于 ajax,我计划使用 jQuery(也适用于所有前端效果)。

4

4 回答 4

15

不知道我是否应该用这两件事来做整个网站?

如果您想学习 node.js,那么没有什么比编写它更好的了。

既然我要运行一个节点服务器,我应该只运行另一个(单独的)一个托管网站的服务器吗?

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

稳定吗?

甚至 node.js 的版本都是稳定的版本,但是在 1.0 版本冻结之前,它的 API 可能会发生重大变化。

我可以在 PHP 中进行编程并且仍然使用 mongodb - 但节点不会更快吗?

它很可能(并且肯定)会。

我计划使用 ajax 来处理页面上的所有帖子 - 但由于我已经使用 socket.io 进行聊天 - 我应该使用它来完成我的所有帖子请求吗?

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

于 2011-05-06T07:40:20.907 回答
12

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

在 Node.js 中构建一个真正的网站是什么感觉

关于您的第二个问题,最好将 AJAX 处理程序和 HTTP 与 jQuery 一起使用。我不确定 jQuery 是否支持通过原始 TCP 套接字进行回调。

于 2011-05-05T22:30:25.020 回答
9

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

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

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

于 2011-05-06T01:33:47.867 回答
3

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

在 node 中完成整个事情的最大好处是,您不会在 php 和 js 之间重复代码来处理 DB 或两者都需要的任何其他服务。Node.JS 在处理大量并发请求方面也非常出色。

祝你好运

于 2011-05-05T22:20:14.883 回答