Javascript sailsjs:如何在sailsjs中定义两个不同数据库的MySQL连接?
我已经创建了Employee.js和EmployeeController.js模型。我在Employee.js文件中定义了两个连接:Javascript sailsjs:如何在sailsjs中定义两个不同数据库的MySQL连接?,javascript,mysql,node.js,express,sails.js,Javascript,Mysql,Node.js,Express,Sails.js,我已经创建了Employee.js和EmployeeController.js模型。我在Employee.js文件中定义了两个连接: module.exports = { connection: 'LocalhostMysqlServer', attributes: { name:{ type:"string", required:true, }, empnum:{ type:
module.exports = {
connection: 'LocalhostMysqlServer',
attributes: {
name:{
type:"string",
required:true,
},
empnum:{
type:"integer",
required:true,
unique: true
},
email:{
type:"string",
required:true,
unique: true
}
},
connection: 'LocalhostMysqlServer1',
attributes: {
username:{
type:"string",
required:true,
},
usrnum:{
type:"integer",
required:true,
unique: true
},
email:{
type:"string",
required:true,
unique: true
}
},
};
下面是我的EmployeeController.js文件,其中包括两个视图:CreateEmp和CreateUsr,与此模型和控制器关联。此外,我还定义了两个函数来处理来自这些视图的post请求。在这里,我想将数据从CreateEmp插入到另一个数据库,从CreateUsr插入到另一个数据库
module.exports = {
createEmp: function(req,res){
'use strict';
res.view('new.ejs');
},
createUsr: function(req,res){
'use strict';
res.view('newUser.ejs');
},
createEmployee: function(req, res){
if(req.method=="POST"){
var name= req.param("name");
var empnum= req.param("empnum");
var email= req.param("email");
var insert= "INSERT INTO employee(name, empnum, email) VALUES ('"+name+"', "+empnum+", '"+email+"')";
Employee.query(insert, function(err, record){
if(err)
console.log(err);
else{
console.log(record);
}
})
}
},
createUser: function(req, res){
if(req.method=="POST"){
var username= req.param("username");
var usrnum= req.param("usrnum");
var email= req.param("email");
var insert= "INSERT INTO user (username, usrnum, email) VALUES ('"+username+"', "+usrnum+", '"+email+"')";
Employee.query(insert, function(err, record){
if(err)
console.log(err);
else{
console.log(record);
}
})
}
},
};
我已将我的config/connections.js包括在这里:
module.exports.connections = {
localDiskDb: {
adapter: 'sails-disk'
},
LocalhostMysqlServer: {
adapter: 'sails-mysql',
//module: 'sails-mysql',
host: 'localhost',
user: 'root',
password: 'disisanshu',
database: 'sailsTest1',
tableName: 'employee'
},
LocalhostMysqlServer1: {
adapter: 'sails-mysql',
host: 'localhost',
user: 'root',
password: 'disisanshu',
database: 'sailsTest2',
tableName: 'user'
}
};
在这里,我将我的model.js包括在下面:
module.exports.models = {
// migrate: 'alter'
connection: 'LocalhostMysqlServer',
migrate: 'alter',
connection1: 'LocalhostMysqlServer1',
migrate: 'alter'
};
您不能在同一个模型中使用两个不同的连接——希望没有文档说明这是可能的!您只需定义两个不同的模型
另外,在一个对象中声明同一个键两次(就像在第一个代码块中使用
connection
和在最后一个代码块中使用migrate
一样)也不是真正有效的Javascript。如果它们不同,第二个定义将覆盖第一个定义 你没有理由做这样的事
您可能希望减少数据库的负载。应该实现主从数据库类型的结构
此外,数据库应该与应用程序的其余部分完全解耦。这就是为什么你应该只有一个连接。
如果数据库上的负载增加,请水平扩展(添加更多服务器以分配负载)-mySQL对这些方面都有好处。这可以而且应该在不更改应用程序代码的情况下完成。嘿,我只想使用相同的东西,因为我想将公共数据保存到不同的DB中。ex:address模块将把数据保存到地址表中,地址表将与其他5个应用程序相同。我只想使用相同的通用模块数据到一个数据库中。嘿,在不同的模型中可以使用不同的MySql数据库吗?我想在地址模块中使用connection1,在个人模块中使用connection。