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

时间:2018-12-19 06:57:32

标签: mysql node.js mongodb

我想使用Node.js同时连接到两个不同的服务器

假设我想从具有MySQL数据库的服务器上获取一些文本,并从具有MongoDB的另一台服务器上获取其他文本,然后比较这些文本。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

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中连接两个数据库之后。您可以只查询带有promise的单个数据库,然后使用promise。一旦获取了两个结果,您就可以比较字符串。示例代码如上所示。