我想使用Node.js同时连接到两个不同的服务器
假设我想从具有MySQL数据库的服务器上获取一些文本,并从具有MongoDB的另一台服务器上获取其他文本,然后比较这些文本。
我该怎么做?
答案 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。一旦获取了两个结果,您就可以比较字符串。示例代码如上所示。