如何使用sails-sqlserver调用存储过程?

时间:2018-05-14 17:48:06

标签: sails.js

我是帆船的新手。我想使用sails-sqlserver适配器调用存储过程。过程使用连接多个表的查询返回结果集。

1 个答案:

答案 0 :(得分:0)

我能够弄清楚如何调用程序。我正在连接SQL服务器数据库。 sails没有提供连接到SQL Server的默认适配器。我已经使用了sails-sqlserver适配器。

我观察到的几点。

  1. 要调用过程或查询,我们需要一个模型。
  2. 您不需要在数据库中拥有包含型号名称的表。你也不需要 指定模型文件中的属性。
  3. 当我使用短跑" - "在我的模型名称中,它无法正常工作。例子"报告数据"
  4. 我在模型名称中使用了下划线并且它有效。示例" Report_data"
  5. 要生成我在命令下面使用的控制器和模型:

    
    
    sails generate api Report_data
    
    
    

    上面的命令将创建控制器文件和模型文件。

    1. 您需要在route.js文件中添加路由。这就是我做的事情
    2. 
      
      '/api/Report_data':{
      controller:'Report_dataController',
      action: 'getReport'
      }
      
      
      

      1. 您需要在控制器内编写动作" Report_data"。以下是我的控制器代码
      2. 
        
        module.exports = {
        	'getReport':function(req,res){
                Report_data.query('get_sample_report',function(err,resultSet){
                    if(err){
                        res.json(err);
                    }
                    else{
                        res.ok(resultSet);
                    }
                });
            }
        };
        
        
        

        那就是它。在浏览器中提升风帆并调用api: http://localhost:1337/api/Report_data

        注意:我已经在blueprint.js文件中禁用了所有蓝图/水线默认路由

        
        
        //blueprint.js
        action:false,
        rest:false,
        shortcuts:false
        
        
        

        此外,如果您的sql server连接无法正常工作,请确保您没有在主机名中提供端口。例如我在sql server management studio中使用的sql server的主机名是" servername.domainname.com/zone1,1433"。

        当我在connection.js文件中使用相同的主机名时。它没有用。我删除了" zone1,1433"来自connection.js文件(主机属性)和连接工作。