1

我有一个模型,我需要随时切换数据源。为此,我在该模型上创建了一个远程方法并使用了attachTo()方法。

// myModel.js

 switchDataSource = function(req, fn){
 const app = MyModel.app;
 console.log('req.dataSource ', req.dataSource);

 if(req.dataSource === 'datasource1'){
  MyModel.attachTo(app.dataSources.datasource1);
 } else if(req.dataSource === 'datasource2'){
  MyModel.attachTo(app.dataSources.pagarmeTest);
 } 
 console.log('Datasource Attached: ', MyModel.getDataSource().settings.name);
 fn();
}

我第一次调用远程方法时,数据源会相应更改。

例如,datasource1附加到myModel,现在我用 调用远程方法datasource2。这将工作得很好。

但是,如果我调用这个远程方法,传递datasource1- 之前附加的那个myModel- 它不会工作。console.log(Model.getDataSource().settings.name)显示数据源已更改,但是当我使用模型及其数据源时,它仍然是前一个。

datasources.local.js上,我已经声明了我将不断地从我的模型中附加和分离的数据源Model

// datasources.local.js

exports.datasource1 = {
  name: 'datasource1',
  connector: 'rest',
  ...
}

exports.datasource2 = {
  name: 'datasource2',
  connector: 'rest',
  ...
}

因此,似乎我无法将数据源更改为同一模型以前使用过的数据源...我注意到问题不是切换到新的数据源,而是尝试附加之前已附加的数据源同型号。

4

1 回答 1

1

也许最好的选择是重新加载所有模型。是否有可能在环回中发生?

于 2017-05-25T20:10:02.177 回答