Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node Express Multiple SQL server Connection

I need to connect to diferent databases on direfent servers. The servers are Microsoft SQL Server.

I do it like this:

dbconfig.js

    var sql1 = require('mssql')
    var sql2 = require('mssql')

    var conn1 = {server:"SERVER IP", database:"db1", user:"foo", password:"foo", port:1433}

    var conn2= {server:"SERVER2 IP", database:"db2", user:"foo2", password:"foo2", port:1433}

var server1= sql1.connect(conn1)
    .then(function() {  debug('Connected'); })
    .catch(function(err) { debug('Error connect SQL Server', err);  });

    var server2= sql2.connect(conn2)
        .then(function() {  debug('Connected'); })
        .catch(function(err) { debug('Error connect SQL Server', err);  });

module.exports = {"ServerConn1": sql1, "ServerConn2": sql2};

After that, both connection are active, but when I do a query to the first connection it didn't work.

The error is Invalid object name 'FooDatabase.dbo.fooTable'.

Can anyone help me to solve this issue?

Thanks!

like image 304
Sergi Nadal Avatar asked May 17 '26 20:05

Sergi Nadal


1 Answers

I implement using MySQL you can do the same thing mssql by passing empty database parameter and letter update database before creates connection.

And you do not need to import two-times just update the DB name before creating connection or query.

const express = 

require('express');  
const app = express();  
const port = process.env.PORT || 80;
var http = require('http');
var mysql = require('mysql')
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '',//here i am not passing db and db is undefined

});

app.get('/db1',function(req,res)
{
connection.config.database="task" //here  i updating db name before query
connection.query('SELECT * FROM tasks', function (error, results, fields) {
    console.log(results)
    res.json(fields)
connection.end()
})
})

app.get('/db2',function(req,res)
{
connection.config.database="cg_taskview" //db2

connection.query('SELECT * FROM tasks', function (error, results, fields) {
     if (error)
    console.log(error); 
    console.log(results)
    res.json(fields)
     });
connection.end()

})

var server = http.createServer(app);
server.listen(port, function () { 
})
like image 192
Adiii Avatar answered May 20 '26 16:05

Adiii



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!