是 Node.js 用于这样的 Web/移动应用程序


Is Node.js for a web/mobile application like this?

首先,我是一个经验丰富的js程序员,也擅长php(不包括数据库设计),但对服务器的工作原理知之甚少。

正在参与一个即将开始的大项目,我试图找出最好的技术。

该应用程序将被地理定位,并将使用谷歌地图。它将有很多javascript渲染(可能在前端,我最终会使用骨干或余烬,但仍然在思考)。希望它会被很多用户使用。将在四处移动时不断接收数据。具体来说,他们将从俱乐部、酒吧等接收数据。希望它能随着时间的推移而持续增长,具有新功能,更多数据,更多用户。

我想知道node.js是否可能是开发它的不错选择,最好坚持使用更传统的php方式。

你觉得怎么样?

由于您是一位经验丰富的 Js 程序员,因此使用 Node.js 应该不会遇到真正的问题。您已经熟悉该语言。如果你的应用程序将连续发送和接收数据,我推荐 Node.js 和 socket.io,它可以实现实时通信。

Nodejs 需要比 php 更多的初始代码(因为没有像 apache 这样的中间件服务器,你必须自己对服务器进行编程),但可以执行得更快,并且比 php 对模板和 websocket 的支持要好得多。如果你的地图应用程序想要实时更新,那么websockets是不可思议的,但目前在php中没有好的解决方案。在 php 中处理 websocket 的唯一方法是通过外部程序,因为您无法控制 php 服务器。

如果你打算使用 nodejs,需要考虑的一件事是:你喜欢回调吗?与 php 不同,在 nodejs 中,几乎所有内容都是在异步回调中编写的,以防止服务器在处理大请求时卡住。有些人喜欢这种编码风格,另一些人鄙视它,认为它是函数内部函数内部的一堆混乱函数。我个人喜欢这种风格,但它比 php 更复杂。

很多选择取决于您团队的个人喜好。花一两个小时与您的团队一起尝试,看看哪个似乎最适合您。