Nodejs更改数据库连接运行时间

时间:2018-04-11 07:10:11

标签: mysql node.js express

enter image description here我需要在运行时更改Nodejs MySQL数据库连接。

这是我的代码,

var mysql=require('mysql'); 
var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '', database : 'test' }); 
var connection2 = mysql.createConnection({ host : 'localhost', user : 'root', password : '', database : 'test1' }); 
connection.connect(function(err) { if (err) throw err; console.log('You are now connected...'); }); connection2.connect(function(err) { if (err) throw err; console.log('You are now connected...'); });

你对此有什么想法吗?

请与我分享。

感谢。

3 个答案:

答案 0 :(得分:1)

MySQL提供changeUser命令,允许您在不关闭底层套接字的情况下更改当前用户和连接的其他方面:

由于您使用module exports导出了连接,因此可以require如下

var connection = require('./ connection.js');

var connection = require('./connection.js'); // your path

function changeConnection(db)

   connection.changeUser({database : 'my_database'}, function(err) { 
     if (err) throw err; 
   });
}

Here is the documentation for the same

答案 1 :(得分:0)

请试试这个,我希望它能达到目的。

var mysql=require('mysql'); 

function getConnection(db){
        var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '', database : db }); 
        connection.connect(function(err) { 
            if (err) throw err; 
            console.log('You are now connected...'); 
            return connection;
        });
}


var connection = getConnection(req.param.db); //req.param.db is a user input

// Here your code goes

答案 2 :(得分:0)

不需要更改数据库连接只更改数据库名称

class Item extends Component {
  state = { id: this.props.itemId, name: this.props.itemName }

  render() {
    return (
      <div onClick={() => this.props.onDelete(this.state.id)}>
        {this.state.name}
      </div>
    );
  }
}

export default Item;