Node.js 使用sails js版本1提升后的动态数据库连接

Node.js 使用sails js版本1提升后的动态数据库连接,node.js,sails.js,waterline,Node.js,Sails.js,Waterline,我只想要MYsql的解决方案 我想根据每个请求切换数据库 我已经在以前版本的sails中实现了这一点,但是使用了这个新版本(1.0.0) 我做不到 没有关于它的文档 我有一个主数据库,比如说DB_A,在it用户拥有自己的数据库进行交互之后,我使用它作为默认数据存储来验证用户 提升后,它可以是系统中存在的任何数据库,用户可以与之连接并获取 我发现了一些选择 1) 重新加载orm 2) 创建管理器 但是我不知道如何使用它,因为没有人建议它们 有人能帮我吗我在sails应用程序中使用PostgreS

我只想要MYsql的解决方案

我想根据每个请求切换数据库 我已经在以前版本的sails中实现了这一点,但是使用了这个新版本(1.0.0) 我做不到

没有关于它的文档

我有一个主数据库,比如说DB_A,在it用户拥有自己的数据库进行交互之后,我使用它作为默认数据存储来验证用户 提升后,它可以是系统中存在的任何数据库,用户可以与之连接并获取

我发现了一些选择

1) 重新加载orm

2) 创建管理器

但是我不知道如何使用它,因为没有人建议它们


有人能帮我吗

我在sails应用程序中使用PostgreSQL时遇到了类似的问题。我 在下面找到了一个解决方法。 i、 e.npm安装pg。 在您的情况下,安装mysql插件,即npm i mysql

我已经在sails app controllers文件夹中创建了dbconnections.js

const a = {
  host: 'abc.com',
  port: 'xxxx',
  database: 'xxxx',
  user: 'xxxx',
  password: 'xxxx'
}

const b = {
  host: 'ecd.com',
 port: 'xxxx',
  database: 'xxxx',
  user: 'xxxx',
  password: 'xxxx'
}


module.exports = { a: a, b: b};
然后在我的其他控制器中,我使用了pg插件来匹配用户传递的db 环境透过空气污染指数

i、 在我的另一个控制器中

var sourceFile = require('./dbconnections.js');

const {
      Client
    } = require('pg');
对于您的情况,您可以按照以下步骤 创建连接对象并按照以下逻辑进行动态连接 到不同的数据库

    var match_env;

    for (x in sourceFile) {

      if (x === env) {
        match_env = sourceFile[x];

      }
    }

    const client = new Client(match_env)
现在,客户机对象将拥有所有postgresql事务 执行,即。 client.connect() const qry=“选择*来自城市=“纽约”所在的人员; 客户端查询(qry,函数(err,resp){

根据用例,我们可以将上述代码移动到其他js文件并调用 作为 尽可能多的控制器,这将与多对多db一起工作
sails应用程序中的postgres sql连接。

您找到解决方案了吗?实际上我当时正在使用sails@0.12所以,正确的方法是使用节点mysql驱动程序,只为mysql创建自己的orm,但我认为在你的情况下,它可以通过数据存储实现。真的,我用和你一样的方法解决了它。我希望你能发布解决方案。T汉克斯
    console.log("before", client)

    client.end();
    console.log("after", client)
    //user = JSON.parse(user);
    if (err) {
      return res.json({
        error: err
      });
    }
    if (resp === undefined) {
      return res.notFound();
    } else
      console.log(resp);
    return res.json({
      userData: resp.rows
    });

  }

);