Sailsjs与Sails-SqlServer和Waterline ORM

在正确理解水线ORM文档时遇到一些困难。 我正在寻求关于查询MSSQL数据库的正确方法的build议,而没有在我的Sails API中定义模型。

到目前为止,我已经成功创build了必要的连接并下载了sails-sqlserver npm软件包。

我有一个以下代码的控制器:

module.exports = { /** * @name: all * @description: return a list of items **/ all: function(req, res){ /** as per Waterline documentation, use a use an arbitary model to create a raw SQL query **/ Items.query("select * from table", function(err, resultSet){ if(err) return res.send(err); return res.ok(resultSet); }); } } 

Items.js

 module.exports = { attributes: { } }; 

在使用Postman调用控制器GET /api/items的路由

API不会返回响应,它只是挂起,最终超时。

我有上面的Items.query console.log(),以确保控制器正在执行。

我发现SQL Server拒绝访问服务器。

用于打开连接的预login数据包在结构上是无效的; 连接已closures。 请联系客户端库的供应商。

我是sails-sqlserver适配器的维护者。

确保这件事:

  1. 您可以通过SQL Server Workbench使用相同的凭据连接到数据库。

  2. 你并没有落后于任何限制性的防火墙或代理服务器,这可能会破坏你的请求

  3. 您正在使用受支持的SQL Server版本(2008及更高版本)

我认为你是颠倒的,你必须定义你的模型与你的数据库的属性,例如:

items.js

 module.exports = { schema: true, connection: 'yourConnection', tableName: 'yourTableName', attributes: { id:{ type:"number", primaryKey: true }, name:{ type:"string" }, address:{ type:"string" } } }; 

现在,当您调用路线GET localhost:1337/items ,它将返回您的控制器中没有function的所有项目。

注意:假设您正在使用本地主机。