Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用sequelize根据express.js中的路由更改数据库连接_Javascript_Node.js_Express_Sequelize.js - Fatal编程技术网

Javascript 使用sequelize根据express.js中的路由更改数据库连接

Javascript 使用sequelize根据express.js中的路由更改数据库连接,javascript,node.js,express,sequelize.js,Javascript,Node.js,Express,Sequelize.js,是否可以根据路由更改sequelize中的数据库连接 例如,用户可以访问网站中的两个不同安装: -example.com/foo -example.com/bar 登录后,用户将被重定向到example.com/foo 要获取foo站点的所有任务,他们需要访问example.com/foo/tasks bar网站使用一个单独的数据库,因此,如果他们想获得bar的所有任务,他们必须访问example.com/bar/tasks 每个安装都有自己的数据库,所有数据库都有相同的模式 是否可以根据访问的

是否可以根据路由更改
sequelize
中的数据库连接

例如,用户可以访问网站中的两个不同安装: -
example.com/foo
-
example.com/bar

登录后,用户将被重定向到
example.com/foo
要获取
foo
站点的所有任务,他们需要访问
example.com/foo/tasks

bar
网站使用一个单独的数据库,因此,如果他们想获得
bar
的所有任务,他们必须访问
example.com/bar/tasks

每个安装都有自己的数据库,所有数据库都有相同的模式

是否可以根据访问的路由更改数据库连接


*登录只发生一次

我认为最好根据路线更改集合。 在同一数据库中具有
foo_任务
collection和
bar_任务
collection


或者在
tasks
集合中使用属性
type
,指定任务是“foo任务”还是“bar任务”。

这是可能的。有很多方法可以做到这一点。以下是我可能的做法

路由器.js Connection.js Tasks.js 也就是说,当您想要在两者之间复制模式时,您将不得不面对一些有趣的问题,但对于另一个问题来说,这可能是最好的


我希望这有帮助

如何以这种动态方式进行?例如,您正在connection.js中硬编码这两个数据库?如果有1000个数据库动态地处理,那么考虑**Bo.DeV和子域名的博客系统是数据库名称,你需要多少连接?我有同样的麻烦。
var router = express.Router()
// This assumes the database is always the 2nd param, 
// otherwise you have to enumerate
router.use('/:database/*', function(req, res, next){
  req.db = req.params.database;
  next();
} 
var fooDB = new Sequelize('postgres://user:pass@example.com:5432/foo');
var barDB = new Sequelize('postgres://user:pass@example.com:5432/bar');
module.exports = {
  foo: fooDB,
  bar: barDB,
}
 var connection = require('connection);
 function getTasks(req, params){
   var database = connection[req.db]; 
   //database now contains the db you wish to access based on the route.
 }