【问题标题】:Dynamic database connection after lift using sails js version 1使用sails js版本1提升后的动态数据库连接
【发布时间】:2018-07-21 12:46:24
【问题描述】:

我只想要 MYsql 的解决方案

我想根据请求切换数据库 我已经在以前版本的 Sails 中实现了它,但是使用这个新版本(1.0.0) 我做不到 sails.js - I want to add DB connection dynamically after sails lift

没有相关文档

我有主数据库,比如说 DB_A,在用户拥有自己的数据库进行交互后,我将其用作默认数据存储来验证用户身份 提升后它可以是系统中存在的任何用户可以连接和获取的数据库

我发现了一些选项

1) 重新加载orm

2) 创建管理器

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

谁能帮帮我

【问题讨论】:

  • 你找到解决办法了吗?

标签: node.js sails.js waterline


【解决方案1】:

我在 Sails 应用程序中使用 PostgreSQL 时遇到了类似的问题。一世 在下面找到了解决方法。 即 npm install 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 环境通过api

即在我的另一个控制器中

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

const {
      Client
    } = require('pg');

对于您的情况,您可以关注https://www.npmjs.com/package/mysql 创建连接对象并按照以下逻辑动态连接 到不同的数据库

    var match_env;

    for (x in sourceFile) {

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

      }
    }

    const client = new Client(match_env)

现在客户端对象将拥有所有可以使用的 postgresql 事务 执行,即 客户端.connect() const qry = "select * from person where city="newyork"; client.query(qry, function (err, resp) {

    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
    });

  }

);

根据用例,我们可以将上面的代码移动到其他 js 文件并调用 作为 尽可能多的控制器,这将与多个用于多个数据库一起使用 Sails 应用中 postgres sql 的连接。

【讨论】:

  • 实际上我当时解决了它我正在使用sails@0.12所以正确的方法是使用node-mysql驱动程序并仅为mysql创建自己的orm但我你的情况它可以由Datastore @987654322实现@
  • 没错,我解决的方法和你一样。我希望你会发布解决方案。谢谢
猜你喜欢
  • 1970-01-01
  • 2015-11-14
  • 2019-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-02
相关资源
最近更新 更多