微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Sails js:如何在Sails js的单个模型中定义两个不同数据库的MySQL连接?

我创建了一个模型Employee.js和EmployeeController.js.我在Employee.js文件中定义了两个连接:

    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'

    };

解决方法:

没有理由你应该做这样的事情.

您可能希望减少数据库负载.应该实现主从数据库类型的结构.

此外,数据库应与您的应用程序的其余部分完全分离.这就是您应该只有一个连接的原因.
如果数据库上的负载增加,请将其水平扩展(添加更多服务器以分配负载) – MysqL适用于这些事情.这可以而且应该在您的应用代码没有任何变化的情况下完成.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐