javascript - 如何使用 ExpressJS 访问多个数据库?

标签 javascript node.js express

我的服务器有 3 个具有相同表的数据库。

DB1、DB2 和 DB3。

当我使用数据库时,我使用:

app.js

var cnxDB= require('./routes/cnxDB');
app.post('/userSave', cnxDB.userSave);

cnxDB.js:

var sql = require('mssql'); 
var qs = require('querystring');
var colors = require('colors');
var config = {user: 'user',password: 'pass',server: '127.0.0.1',database: nameDB',
    options: {
        encrypt: false
    }
};
sql.connect(config, function(err) {
   //Connection
});
exports.userSave = function(req, res) {
    //response
};

初始化应用程序时立即建立与数据库的连接。

我需要知道你如何选择数据库。

app.post('/selectBD', function(req, res){
  var body = req.body; // accede a la información enviada por el socket
  console.log(body);
  if(body.cnx == 1)
  {
    var cnx = require('./routes/bdUno');
    app.get('/yuri', cnx.findall);
  }
  if(body.cnx == 2)
  {
    var cnx = require('./routes/bdDos');
    app.get('/yuri', cnx.findall);
  }
  if(body.cnx == 3)
  {
    var cnx = require('./routes/bdTres');
    app.get('/yuri', cnx.findall);
  }

  res.status(200).json("Ok");
});

谢谢。

最佳答案

cnxDB.js中设置3个连接:

var connections = {
    <dbname>: null,
    <dbname>: null,
    <dbname>: null
}

转到mssql并查看“快速示例”。它创建一个连接并将其保存在变量中。您需要为每个数据库执行 3 次,并将它们保存在相应数据库名称下的 connections 中。

然后,您从 cnxDB.js 导出的函数应该有办法知道您希望它们使用哪个数据库。从外观上看,您希望了解该请求正文中需要使用哪些数据库。您可以使用它来选择数据库。

关于javascript - 如何使用 ExpressJS 访问多个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33418854/

相关文章:

javascript - 类型错误 : Class constructor DatabaseError cannot be invoked without 'new'

node.js - 在 NodeJS 中发送不同的 POST 响应

javascript - node.js - 想在同一个路由器 POST 中发送两个资源

javascript - 从 Bluebird Promise 对象访问 jQuery $.get URL

javascript - 在node.js + Express中实现依赖选择列表

javascript - 如何在 node.js 应用程序中正确访问由 express 设置的应用程序变量?

node.js - Jest 测试甚至在我的 Express 应用程序上运行 server.close() 后仍然挂起

javascript - expectHEAD 已记录但未实现?

javascript - 如何在 vuetify 中动态添加/删除带有选择/自动完成值的新表单行?

javascript - 在 javascript 变量中存储 HTML 或 XML 代码