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适配器的维护者。
确保这件事:
-
您可以通过SQL Server Workbench使用相同的凭据连接到数据库。
-
你并没有落后于任何限制性的防火墙或代理服务器,这可能会破坏你的请求
-
您正在使用受支持的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的所有项目。
注意:假设您正在使用本地主机。