适用于 Web 和移动应用程序的 node.js 服务器
Posted
技术标签:
【中文标题】适用于 Web 和移动应用程序的 node.js 服务器【英文标题】:A node.js server for both web and mobile app 【发布时间】:2017-03-19 21:46:04 【问题描述】:我正在通过 Unity 创建一个游戏,我想将玩家的分数上传到 MongoDB。因此,我搭建了一个node.js服务器,监听3000端口,分数会发送到服务器并存入数据库。
我的问题是,如果我想创建一个网站来查看/分析球员的得分,我应该使用哪种方法?
-
创建两台 node.js 服务器,一台用于网络,一台用于游戏
一台 node.js 服务器,但监听 80 和 3000 端口(我不确定是否可行)
还有其他更好的建议吗?
谢谢。
【问题讨论】:
【参考方案1】:我会创建一个 Node 服务器,一个同时服务于 api 和 web 请求。
听起来 API 和网络提供的数据将是相同的或彼此的子集。因此,您可能希望共享代码、从数据库中查找相同的内容等。
从这里,您可以创建 api 使用和 web 使用的单独路由(/api/v1/my_scores
与 /my_scores
),或者意识到您只是要求相同数据的不同表示并执行 RESTful 之类的操作 @ 987654321@ 并发送服务器呈现的 html 或将 JSON 发送回客户端。
或者,您可以在 Node 中创建一个 api,然后使用 Angular 或 React 等纯前端工具为您的网站创建一个 Web 前端。
【讨论】:
【参考方案2】:使用端口 3000 不是一个好主意,因为许多用户通过阻止非标准端口的防火墙访问 Internet。
我建议使用 443 端口和 https 来保护这两个用例的通信。
如果用于分析分数的站点不与 api 服务器共享逻辑,则可以将其创建为单独的站点 - 但在启动时更容易管理单个应用程序。
【讨论】:
【参考方案3】:如果我很容易理解您的问题,并且根据我有限的知识,我认为您不需要超过一台带有数据库的服务器。原因是您只想显示高分的网站,最终用户不能在网站上插入任何内容。所以复杂性已经很小了,所以不要费心创建另一个服务器。只需将数据获取 API 分开以在网站中使用即可。
【讨论】:
以上是关于适用于 Web 和移动应用程序的 node.js 服务器的主要内容,如果未能解决你的问题,请参考以下文章
如何使用适用于 Node.js 的 AWS 开发工具包将 Amazon S3 中的所有对象从一个前缀复制/移动到另一个前缀