簡體   English   中英

使用sails js版本1提升后的動態數據庫連接

[英]Dynamic database connection after lift using sails js version 1

我只想要MYsql的解決方案

我想在每個請求的基礎上切換數據庫我已經在以前版本的風帆中實現了它但是使用這個新版本(1.0.0)我無法做sails.js - 我希望在風帆提升后動態添加數據庫連接

它沒有文檔

我有主數據庫讓我說DB_A,我用它作為默認數據存儲區來驗證用戶后,用戶有自己的數據庫進行交互,升級后,它可以是系統中存在的任何數據庫,用戶可以連接和獲取

我發現了一些選擇

1)重新加載orm

2)創建經理

但不知道如何使用它,因為沒有人建議

任何人都可以幫助我

我在sails app中使用PostgreSQL時遇到了類似的問題。 我在下面找到了一個解決方法。 即npm install pg。 在你的情況下安裝mysql插件即npm我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插件來匹配通過api傳遞db env的用戶

即在我的另一個控制器中

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

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

對於您的情況,您可以按照此https://www.npmjs.com/package/mysql創建連接對象並按照以下邏輯動態連接到不同的dbs

    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 =“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 app中postgres sql的多個數據庫連接的多個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM