我有几个PHP脚本,我正在迁移到Node.js.我正在使用Sails.js,我想知道如何根据请求参数更改每个请求的数据库。
目前我有3-4个相同的PostgreSQL数据库。我们只是说每个数据库对应一个不同的客户端。
以下是建立数据库连接的当前PHP脚本的一部分:
$database = $_GET['db'];
$conn_details = "host=localhost port=5432 dbname=$database user=****** password=******";
$dbconn = pg_connect($conn_details);
在这里,您可以看到数据库名称来自请求参数" db"。
我想在sails.js控制器中使用类似的功能。我知道我可以在connections.js中声明多个数据库,并且我可以让模型使用不同的数据库,但我所追求的是模型保持不变,只有数据库根据每个请求进行更改。
我发现了2个类似的问题,但现在已经有一段时间没有得到答复了。 (Here和here)
提前感谢帮助。
答案 0 :(得分:0)
我认为你正在寻找类似子应用程序的东西
但它是实验模块。所以我不建议在生产中使用它。其他选项也不是很好,就像你的模型那样倍增:
在“父”模型中,您将选择要发送动作的模型。例如写方法:
getModel: function(dbName){
return models[dbName];
}
在模型对象中,您将存储具有不同连接的所有模型。不确定验证器在这种情况下的工作原理。您需要测试是否不需要在子模型中执行类似的操作
attributes: parentModel.attributes
希望它会有所帮助。