连接到使用两个不同数据库系统的两个不同主机node.js

5f0d552i  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(388)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

两年前关门了。
改进这个问题
我想用node.js同时连接到两个不同的服务器
假设我想从mysql数据库服务器上获取一些文本,从mongodb服务器上获取一些其他文本,并比较这些文本。
我该怎么做?

muk1a3rh

muk1a3rh1#

const mysql = require('mysql');
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://<YOUR_CONNECTION_STRING>";
var config = {
    mysql_pool : mysql.createPool({
        host     : '<HOST>',
        user     : '<USER>',
        password : '<PASS>',
       database : '<DB>'
    }); 
};

var mySqlPromise =  new Promise(function(resolve,reject){
   config.getConnection(function (err, connection) {
    connection.query('{YOUR QUERY}' ,[{FIELDS}], function (err, rows) {
     if(err){
      reject(err);
     }else{
      resolve(rows);  
     } 
     connection.release();
    });
  });
});

var mongoPromise = new Promise(function(resolve,reject){
   MongoClient.connect(url, function(err, db) {
      if (err) throw err;
      var dbo = db.db("mydb");
      dbo.collection("<YOURCOllECTION>").findOne({<Query>}, function(err, result) {
       if (err) reject(err);
       resolve(result);
       db.close();
    });
  });
});

Promise.all([mySqlPromise, mongoPromise],function(result){
   //here result[0] is mysql result and result[1] is mongo result do your computation
}).catch(function(err){
  //in case of error code here
});

连接nodejs中的两个db之后。您只需使用promise查询单个数据库,然后使用promise即可。在获取两个结果后,您就可以比较字符串了。示例代码如上所示。

相关问题