最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何在Sails.js中动态连接数据库

运维笔记admin21浏览0评论

如何在Sails.js中动态连接数据库

如何在Sails.js中动态连接数据库

我正在使用nodejs重建遗留的PHP应用程序,经过大约一周的探索后我选择了sailsjs。一切都很好,直到我意识到在风帆中你只能访问控制器中的会话变量。因此,我无法与模型建立动态连接。

遗留应用程序使用PHP会话全局变量在身份验证后连接到不同的postgresql数据库,我似乎无法在Web上找到解决方法。我在网上看到了类似的关于帆的问题。任何节点/帆/数据库极客?

我正在考虑使用sails进行身份验证,因为它已经可以运行并使用expressjs来实现我的sails app然后通过以某种形式的微服务架构发送db connection params来调用的服务。

目前在localhost上运行sails:1337,我在localhost:3000上运行。这是一个很好的方式吗?

回答如下:

我认为你无法动态改变模型中定义的connection属性。但是,您可以尝试不在连接将动态更改的模型中设置任何连接,并根据用户设置默认配置连接。就像是:

User.find(1, function(err, user){

    connection = select_connection_for_phones(user);

    // changing the model connection dinamically
    // You should not define any connection in the model.
    sails.config.models.connection = connection;
    Phone.find({user : user.id }, do_something_else);

});

这样,您的select_connection_for_phones将接收用户并返回字符串连接,您为模型设置全局配置连接,然后启动查询。如果您的型号Phone没有定义连接,它将使用默认值。

相反的方式,可能是这样的:

User.find(1, function(err, user){

    connection = select_connection_for_phones(user);

    // changing properties of the postgresql connection.
    // You must define all your models with this connection.
    sails.config.connections.postgresql.host = host_from_user(user);
    sails.config.connections.postgresql.port = port_from_user(user);
    Phone.find({user : user.id }, do_something_else);

});

在这种情况下,您应该使用相同的连接设置模型,并动态更改连接的属性。

发布评论

评论列表(0)

  1. 暂无评论