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

How to call stored procedure using sails-sqlserver?

我是新手。我想使用 sails-sqlserver 适配器调用存储过程。程序 returns 结果集使用连接多个 table 的查询。

我能够弄清楚如何调用过程。我正在连接到 SQL 服务器数据库。 sails 不提供默认适配器来连接到 SQL 服务器。为此,我使用了 sails-sqlserver 适配器。

我观察到的几点。

  1. 要调用过程或查询,我们需要一个模型。
  2. 您不需要 table 数据库中的模型名称。你也不需要 在模型文件中指定属性。
  3. 当我在我的型号名称中使用破折号“-”时,它不起作用。示例 "Report-data"
  4. 我在我的模型名称中使用了下划线并且它起作用了。示例 "Report_data"

为了生成控制器和模型,我使用了以下命令:

sails generate api Report_data

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

  1. 您需要在 route.js 文件中添加路由。例如这就是我所做的

'/api/Report_data':{
controller:'Report_dataController',
action: 'getReport'
}

  1. 您需要在控制器中编写操作 "Report_data"。下面是我的控制器代码

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/waterline 默认路由

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

此外,如果您的 sql 服务器连接不工作,请确保您没有在主机名中提供端口。例如,我在 sql 服务器管理工​​作室中使用的 sql 服务器的主机名是 "servername.domainname.com/zone1,1433".

当我在 connection.js 文件中使用相同的主机名时。它没有用。我从 connection.js 文件(主机 属性)中删除了 "zone1,1433" 并且连接正常。