gpt4 book ai didi

node.js - 从 Sails.JS 0.10 升级到 0.11 保持向后兼容性

转载 作者:搜寻专家 更新时间:2023-10-31 22:35:28 25 4
gpt4 key购买 nike

我有一个遗留的 Sails.JS 项目,目前在 Sails 版本 0.10.5 上。我想将该项目升级到 Sails 0.11.x 及更高版本,但有一个问题。该项目充当 native 移动应用程序的后端,因此与升级 Web 服务器不同,您只需将新的 sails.io.js 和 socket.io 客户端库链接到您的网站,我们不能依赖用户升级 native 应用程序.

我是唯一一个遇到这个问题的人,这似乎是不合理的,所以我想向社区提出这个问题,看看是否有什么我没有想到的让升级无缝进行的绝妙之处。

我想到的思路是:

  1. 使用子域 ( https://v2.domain.com/api/.. .) 运行两个版本的应用程序。这显然是最明显的解决方案,但需要大量的服务器配置才能实现,而且我们目前运行的 PaaS 定制环境的能力有限,因此这可能需要更换供应商。

    除了走这条路所涉及的工作之外,还需要决定如何处理代码库。您可以为两个 sails 版本维护代码的两个分支,但这意味着要修复错误两次,而且错误的可能性也会增加一倍。或者您可以在代码中添加条款以检查它在哪个版本的 sails 下运行。这两个看起来都不是很干净,但我认为如果归结为这个,我会选择两个选项中的第二个。

  2. 深入研究 sails.js 核心代码,找到让 socket.io 0.9 和 socket.io 1.0 同时并行运行的方法。这将允许我让所有用户在关闭 0.9 支持之前更新他们的移动应用程序。不过,这也有明显的缺陷,其中最主要的缺陷是在框架级别进行如此全面的更改。

我很想深入了解其他人在这种情况下所做的事情,如果解决方案只是保留在 Sails 0.10.5 上,那很好,但我很想获得原生 Socket.IO 的额外好处v.1.0 的库,而不是我目前使用的半自制解决方案。此外,继续获得安全和功能更新也很好。

最佳答案

解决此问题的唯一可靠解决方案是设置一个以当前服务器为基础的 nginx 反向代理,然后在创建的每个路径之前使用另一个带有/v2 路径前缀的服务器,然后将用户迁移到/v2 路径如果你能做到,我会建议对两个服务器使用相同的 git 存储库,但将它们维护在不同的分支上,这样你就可以在需要时将新的更改合并到两个服务器上。

关于node.js - 从 Sails.JS 0.10 升级到 0.11 保持向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33785516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com