gpt4 book ai didi

node.js - sails.js - 我想在升 sails 后动态添加数据库连接

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

在升 sails 期间,我还没有我的数据库的所有连接信息。

有没有办法让配置值依赖于 promises 或在 sail lift 完成后动态创建连接?

如果模型尚不可用,我显然必须添加策略或 Hook 来处理对需要该模型的路由的请求,但在这一点上,我什至不知道如何让风 sails 升起,直到我已经知道连接信息(它必须在配置中)。

我希望我缺少一种动态创建连接并将模型连接到它们的方法。

最佳答案

Update: In Sails v1.0 / Waterline v0.13, this can be accomplished by accessing the stateless, underlying driver; e.g. sails.getDatastore().driver. This can be used in any database adapter that supports the new stateless driver interface, including MySQL, PostgreSQL, and MongoDB.


在 Sails v1.0 之前,Sails 或 Waterline 不直接官方支持它,但根据您的用例,有几个很好的解决方案。如果您的用例是出于开发目的的少量动态连接(例如在自动重新加载插件中),并且您愿意生活在边缘,您可以利用私有(private) API 作为即时解决方法: sails.hook.orm.reload() .但是,您绝对不想在生产中使用它,因为它确实会刷新整个 ORM。

如果您要在运行的 Node 进程的生命周期内处理大量(比方说 > 10 个独特的配置)运行时动态数据存储配置,那就另当别论了。在这种情况下,我建议使用相关的原始驱动程序(例如 https://github.com/felixge/node-mysql )直接通过 service 从池中召唤/释放这些动态连接。 .您仍然可以在您的应用程序中使用您的普通模型进行静态连接——您最好在您的服务中单独实现动态数据库连接。例如,如果您正在构建 phpMyAdmin 的托管版本,您可能会使用较低级别的 NPM 包来动态获取有关用户表的信息,但您仍然可能希望拥有 Account数据库 引用存储在您自己的数据库中的表/集合的模型。

一个更加集成的 Sails 解决方案正在开发中。这种利用原始连接生命周期并从用户空间访问它的能力是内置事务支持的先决条件,这是我们预计在 2016 年下半年某个时间登陆 Sails/Waterline 的功能。与此同时,如果你封装了你的逻辑以通过上面建议的服务方法调用/释放连接,你现在有一个可行的解决方案,你的业务逻辑应该或多或少是 future 的证明(当你升级时,你只需要换掉在您的服务中实现)。希望对您有所帮助!

关于node.js - sails.js - 我想在升 sails 后动态添加数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29454176/

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